projectdocs

projectdocs are the project memory of an exploration: plans, decisions, bug reports, reviews and notes as Markdown files, grouped in phases and anchored to code symbols. Source code shows what the program does. projectdocs record why it was built that way, what was tried before and what is still open.

projectdocs are optional. Tracemoor works without them, and you can start them at any point in a project.

Where the files live

projectdocs live in the exploration, not in the source repository:

<exploration>/projectdocs/<project>/
  _project.md                 masterplan
  progress.md                 current state (optional)
  phases/
    08-polish-amp-open-issues/
      _phase.md               phase marker: title, order, status
      2026-06-17_bugreport_tile-cache-not-invalidated-….md
      09-subphase/            a subphase lives inside its parent
  decisions/NNN_*.md          architecture decision records (optional)

Every entry is a plain Markdown file with a YAML frontmatter. You can read and edit the files in any editor and version them with git. See Share an exploration.

Phases

A phase is a named section of the work, for example "Git integration" or "Polish & Open Issues". It has a title, an order number and a status. A phase can contain subphases. A subphase is a folder inside its parent's folder.

StatusMeaning
plannedNot started.
in-progressWork is under way.
completedDone.
open-issuesDone, but bug reports in it are still open. Set automatically, see Bug reports.
verifiedChecked and accepted by a person. The AI does not set this status.

Entries

An entry is one Markdown file in a phase. Its type says what kind of knowledge it holds:

TypeHolds
planWhat is going to be built.
summaryWhat was built, in a session or a milestone.
decisionA decision and its reasons.
designA design or UI note.
researchResearch results and sources.
reviewA code or quality review.
logRunning notes.
bugreportA bug from report to fix, in one file.
featurerequestA wish or an idea.
ticketA ticket, usually imported from Jira or GitHub. See Tickets.

bugreport, featurerequest and ticket entries have a lifecycle status (open, in progress, closed or finished). It is stored as a reserved tag in the frontmatter, next to free tags such as ui or regression.

The file name is created from the date, the type and the title: 2026-06-17_bugreport_tile-cache-not-invalidated.md.

Anchors

An anchor links an entry to a code symbol, for example a bug report to the function that caused the bug. From the code, the editor gutter shows that an entry is anchored there. From the entry, the anchor leads to the current position of the symbol. Entries can also be anchored to git commits. See Anchors.

flowchart LR
    E["projectdocs entry"] -- "anchor" --> S["code symbol"]
    E -- "commit anchor" --> C["git commit"]
    S -. "gutter mark, peek" .-> E

projectdocs and specs

Specs (URS, FS, test cases) use the same anchor mechanism but add a status workflow, signatures and traceability. projectdocs have none of this. Use projectdocs for working knowledge and specs for requirements that must be verified. See Specifications.

projectdocs and the AI

The AI reads and writes projectdocs with the projectdocs_* tools. Before it changes a symbol, it looks up the entries anchored to it. After a fix, it appends the result to the bug report and anchors the changed symbols. See projectdocs and the AI.