Skip to content

docs: keep planning documents out of version control by default - #28

Merged
yuema137 merged 1 commit into
mainfrom
docs/plans-gitignore
Sep 10, 2026
Merged

yuema137 merged 1 commit into
mainfrom
docs/plans-gitignore

Conversation

@yuema137

Copy link
Copy Markdown
Owner

What this corrects

v0.1.2 moved planning documents to .structured-coding/plans/<effort>/ and told projects to commit them. That last part was wrong. Plans are development artifacts: written for the session that continues the work, stale as soon as the design moves. The default is now to leave them out of version control, with the two recommended lines stated where the reader is actually deciding.

.structured-coding/plans/
.structured-coding/standards.local.md

Why the directory is split rather than ignored

.structured-coding/standards.md stays in version control, deliberately. standards.py reads git ls-files to decide trust: a tracked standards file is the team's, so a command it declares needs an operator approval recorded outside the working tree; an untracked one is personal, so authoring it is the approval.

Ignoring the whole directory would therefore do two things, the second worse than the first:

  1. Team standards sharing stops working — every clone would start with no standards file.
  2. A silent security regression — each remaining standards file is classified personal, so any command a project declares runs without approval, with nothing in the report saying the rule changed.

So the guidance splits the directory: plans and the personal overlay are ignored, the shared standards file is not.

Files

  • structured-coding/references/agent-workflow.md and its Chinese mirror — the default flipped, the two lines, the exception, and the honest cost (a teammate cannot read plans from a fresh clone; a later session on the same machine still can). Projects for which that tradeoff runs the other way are told to commit them.
  • structured-coding/standards-template.md — the table already said the personal file is "not committed"; it now says how, once, next to the note that this file is the opposite.

Validation

  • python3 scripts/build_human_docs.py --check PASS
  • python3 scripts/build_packages.py --check PASS (codex 23 files, claude-code 22)
  • translations.json mirror hashes refreshed for the changed pair; specification_sha256 untouched, as no specification file changed
  • python3 -m unittest discover -s scripts -p 'test_*.py'Ran 168 tests ... OK (skipped=1)

No runtime change: standards.py behaviour is identical, and nothing here is enforced. It is guidance a reader can ignore.

🤖 Generated with Claude Code

The v0.1.2 guidance told projects to commit their planning documents.
Plans are development artifacts: they are written for the session that
continues the work, they go stale the moment the design moves, and a
repository that tracks them accumulates a parallel history nobody reads.
The default is now the other way round, with the two recommended
.gitignore lines stated where a reader is deciding: the agent workflow
reference, and the standards template.

The shared standards file is called out as the deliberate exception.
`.structured-coding/standards.md` is project configuration, and whether
Git tracks it is precisely what standards.py reads to decide whether a
declared command needs approval. Ignoring the directory wholesale would
turn every team standard into a personal one and silently drop that
approval requirement, so the guidance splits the directory rather than
ignoring it.

The cost of keeping plans local is stated rather than hidden: a teammate
cannot read them from a fresh clone, while a later session on the same
machine still finds them. Projects for which that tradeoff runs the other
way are told to commit them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@yuema137
yuema137 merged commit d1c8e14 into main Sep 10, 2026
4 checks passed
@yuema137
yuema137 deleted the docs/plans-gitignore branch September 10, 2026 22:36
@yuema137 yuema137 mentioned this pull request Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant