Context and request
The Agentic Development spec already requires fresh context: "Every canonical context repository MUST be fetched and exactly synchronized with its remote default branch before its contents are read. Dirty, locally ahead, diverged, wrong-branch, or unreachable repositories MUST stop context resolution rather than fall back to stale content." bootstrap/Initialize-MsxWorkspace.ps1 enforces that gate for the workspace clones, and it works.
The gate only protects the clones it knows about. Nothing says a working checkout of a docs repository is not a context source — and that is the path agents actually reach for when one exists on disk. A contributor or agent with MSXOrg/docs already cloned for editing naturally reads guidance from that checkout, which bypasses the freshness gate entirely. The gate cannot catch it, because the gate guards the workspace clones, not arbitrary working ones.
Observed 2026-08-02: a working checkout of this repository was 26 commits behind origin/main, clean and zero commits ahead — simply neglected. It predated the Ways of Working restructure, so it still contained Ways-of-Working/Issue-Format.md and had no Issues/Process/Format.md and no Workflow-Stages/. A task prompt authored from that checkout cited Ways-of-Working/Issue-Format.md as the issue-format authority; that file has not existed upstream for 26 commits. A second docs checkout on the same machine was 13 commits behind.
The failure mode is silent and self-confirming: the stale page is present and readable, so nothing signals that it is wrong. An agent following it produces work against superseded guidance and cites paths that resolve for nobody else. Freshness is already a MUST; what is missing is the statement of which checkout that MUST applies to.
Acceptance criteria
- The agentic-development guidance states that canonical context is read from the validated workspace clones, and that a working checkout of a documentation repository is not a context source even when it is present on disk.
- The distinction is stated in terms of role, not path, so it holds for any initiative's docs repository rather than only the default workspace location.
- The reason is recorded briefly: a working checkout has no freshness gate, and a stale page is readable, so the failure is silent.
- Guidance names the check that settles it, so a reader can verify a checkout rather than trust it.
- Link validation, markdownlint, and the documentation index generator pass.
Technical decisions
- This is a scope clarification of an existing rule, not a new rule. The
MUST in the spec stands; the change says which artifact it governs.
- Out of scope: reordering the context resolution contract, and the per-repository router work. #125 explicitly holds the user-global workspace bootstrap as a separate layer that it is not reordering, so this does not collide with it or with #121.
- No tooling change is proposed. A guard that policed every clone on a machine would have to discover them first; the durable fix is that the reader knows which checkout is authoritative.
- The verification command is
git rev-list --left-right --count HEAD...origin/main, which reports ahead and behind counts and needs no working-tree change.
Implementation plan
Context and request
The Agentic Development spec already requires fresh context: "Every canonical context repository MUST be fetched and exactly synchronized with its remote default branch before its contents are read. Dirty, locally ahead, diverged, wrong-branch, or unreachable repositories MUST stop context resolution rather than fall back to stale content."
bootstrap/Initialize-MsxWorkspace.ps1enforces that gate for the workspace clones, and it works.The gate only protects the clones it knows about. Nothing says a working checkout of a docs repository is not a context source — and that is the path agents actually reach for when one exists on disk. A contributor or agent with
MSXOrg/docsalready cloned for editing naturally reads guidance from that checkout, which bypasses the freshness gate entirely. The gate cannot catch it, because the gate guards the workspace clones, not arbitrary working ones.Observed 2026-08-02: a working checkout of this repository was 26 commits behind
origin/main, clean and zero commits ahead — simply neglected. It predated the Ways of Working restructure, so it still containedWays-of-Working/Issue-Format.mdand had noIssues/Process/Format.mdand noWorkflow-Stages/. A task prompt authored from that checkout citedWays-of-Working/Issue-Format.mdas the issue-format authority; that file has not existed upstream for 26 commits. A second docs checkout on the same machine was 13 commits behind.The failure mode is silent and self-confirming: the stale page is present and readable, so nothing signals that it is wrong. An agent following it produces work against superseded guidance and cites paths that resolve for nobody else. Freshness is already a MUST; what is missing is the statement of which checkout that MUST applies to.
Acceptance criteria
Technical decisions
MUSTin the spec stands; the change says which artifact it governs.git rev-list --left-right --count HEAD...origin/main, which reports ahead and behind counts and needs no working-tree change.Implementation plan
src/docs/Ways-of-Working/Agentic-Development.md, next to the existing refresh gate.src/docs/Capabilities/agentic-development/spec.mdso theMUSTnames what it governs, keeping its RFC-2119 form..github/scripts/Test-DocumentationLink.ps1,.github/scripts/Update-DocumentationIndex.ps1 -Check, and markdownlint with.github/linters/.markdown-lint.yml.