Skip to content

File Reference

File Owner Purpose
syntaxis/project-plan.md You Product direction, users, data, stack
syntaxis/build-plan.md You Ordered features with stable numbers
syntaxis/config.json You Workflow policy
syntaxis/context/coding-standards.md You Code conventions
syntaxis/context/qa-standards.md You QA conventions
syntaxis/context/ai-interaction.md You How agents communicate in this project
syntaxis/context/project-overview.md Generated Durable context from both plans
syntaxis/context/current-feature.md Generated The one active spec
syntaxis/context/findings.md Generated The findings ledger
syntaxis/context/review.md Generated Independent-review handoff and receipt
syntaxis/qa/test-plan.md Generated Test strategy
syntaxis/qa/cases/ Generated Designed cases
syntaxis/qa/runs/ Generated Cycle records
syntaxis/history/ Generated Archived work, immutable
syntaxis/.state/ Generated Local dashboard state, Git-ignored

“Generated” just means a skill is the one that writes it — you’re always free to open it up and correct something yourself.

File Read by
AGENTS.md Codex, Copilot, OpenCode, and any file-aware agent
CLAUDE.md Claude Code; imports AGENTS.md so there is one source of truth

AGENTS.md is also where the project’s real Commands section lives — dev, build, start, lint, test, browser tests, mobile tests, and Verify. Every skill reads its commands from there instead of guessing at them.

syntaxis/context/current-feature.md holds exactly one thing at a time — one feature, fix, or rollback — with its scope, steps, and done-when criteria.

/complete archives it and clears the file back out.

Lives at syntaxis/context/findings.md. Its header lines are a machine-readable contract:

### F-03 [P0] open - Retained auth volumes carry the run label
Status Meaning Blocks P0/P1 at /complete
unverified Suspected, no confirming evidence No
open Confirmed, not repaired Yes
fixed Repaired, not re-reviewed Yes
closed Repaired and re-reviewed No
accepted Not fixing, by your explicit decision No
invalid Re-examination proved it wrong No

See The Findings Ledger.

syntaxis/qa/
├── test-plan.md scope, levels, exit criteria
├── cases/
│ ├── checkout.md TC-NN cases for one area
│ └── login.md
└── runs/
└── 2026-09-19-regression.md one cycle, with evidence

Case header lines are also a contract:

### TC-014 [P1] manual - Checkout rejects an expired card

Its third field carries the automation status: manual, automated, or retired.

syntaxis/history/
├── features/ NN-name.md, rebuilds as NN-name--build-2.md
├── fixes/ name.md
├── rollbacks/ YYYY-MM-DD-<target-stem>.md
└── test-runs/ archived cycle records

Archives never change once written. A rebuild produces a new file rather than writing over an earlier build.

syntaxis/.state/ holds the install manifest plus dashboard activity (run.json). Git ignores it, and it’s never part of a feature commit. Don’t hand-edit run.json — skills go through a helper that validates every field before writing it.

.agents/skills/<skill>/SKILL.md Codex, Copilot, OpenCode
.claude/skills/<skill>/SKILL.md Claude Code

Byte for byte, the two trees match — the only difference is that Claude skills mark themselves explicit-only. See Tool Adapters for what that actually means.