Skip to content

Structured Coding 0.1.3

Latest

Choose a tag to compare

@yuema137 yuema137 released this 11 Sep 02:12
97e7222

Four PRs since 0.1.2, all from real usage feedback rather than anticipated need, closing #25, #26 and #27.

Planning documents stay local by default (#28)

Plans are development artifacts. Two recommended lines, stated where a reader is deciding:

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

.structured-coding/standards.md is the deliberate exception and belongs in version control, because whether Git tracks it is exactly what standards.py reads to decide whether a declared command needs approval. Ignoring the whole directory would break team sharing and silently drop that approval requirement.

Sessions are routed through the entrypoint (#29)

  • SKILL.md rule 5 now covers a session that is new, replacing another, or a delegated agent — stated as a session boundary, not a per-turn reread.
  • The phase table is stated to be the required resource list, so no one reconstructs one from whichever prompt names a kickoff message mentions.
  • Before claiming that work does or does not comply with this workflow, the rule being cited must be read in that session.
  • The continuity preset names the installed SKILL.md by absolute path at session start, in both the unbound and recovery messages. A missing file omits the sentence rather than printing an unopenable path.
  • verify_skill treats SKILL.md, agent-workflow.md and adaptation.md as part of a complete installation.
  • All three copyable kickoff messages read the entrypoint first, so a project with no hooks installed still hands the agent the route.

Endpoint authority is explicit and sourced (#25, second incident)

The contract gains ENDPOINT AUTHORITY: implementation and local validation, semantic commits, branch push, PR creation and update, CI repair to review readiness, and merge as separate decisions, each with its shipped default, the section it comes from, and a recorded source — an explicit operator instruction, a repository restriction, or unresolved. Caution is not a source.

A more restrictive contract now overrides the generic defaults only when the restriction records a source. This closes the path by which an agent's own caution was written into a contract, treated as winning over the commit and PR-completion policies, and then inherited by later sessions as though the operator had set it. Merge authority is never widened, in any direction.

Plan the whole route; name who propagates (#26, #27)

  • An overall must enumerate every currently identifiable necessary high-level step before the operator accepts it or the first PR is frozen, with each operator requirement matched to a step or to an explicit unresolved decision. It is a completeness check on the route, not a demand for speculative architecture or a minimum step count.
  • A merged PR completes that PR. It does not complete its overall, which stays open until every enumerated step is delivered or explicitly dropped. A frozen, bounded PR stays bounded.
  • Post-merge backward propagation has a named owner: the implementation session owns the PR record and merge identity; the contract's POST-MERGE SYNCHRONIZATION OWNER — by default the planning session — owns the step and overall updates. Only the owner writes the parent documents, newer content is reconciled rather than overwritten, and owning propagation is not merge authority.

Runtime surface

Behaviour changes in exactly two places, both from #29: the continuity preset's SessionStart message content, and what verify_skill requires. Everything else is specification and documentation. Nothing new blocks anything.

Validation

Ran 171 tests ... OK (skipped=1). All five --check validations PASS. Packages rebuilt: codex 23 files, claude-code 22 files, directory and zip matching shared source.

Open debts, stated rather than hidden

  • Continuity compact validation still requires an interactive session; no non-interactive trigger exists, and it is not claimed as passed.
  • PostToolUse delivery under an authenticated turn is registered, parsed and budgeted, but not directly observed.
  • merge-guard is decided against, not pending. A guard that blocks would take away something a user can do today; anything in this repository stays bypassable by its user.
  • No mechanical enforcement is claimed for any specification change in this release. Reading a rule proves nothing about whether an agent followed it.