Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions dispatch/write_any.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
# Exit: 0 = mechanical gates pass · 1 = ≥1 failed · 2 = usage error.
#
# Leaf modes are verified against each script's own arg-parser (lib.sh warns the
# contracts are NON-UNIFORM): ufs.sh takes --all only (--staged retired M70);
# logging.sh / error-codes.sh / msid-ui.sh all accept --staged.
# contracts are NON-UNIFORM): ufs.sh accepts --all + --staged (--diff retired
# M70); logging.sh / error-codes.sh / msid-ui.sh all accept --staged.
# The fn≤50/method≤70 sub-cap (write_any.md, file-length card) is a TODO-CHECK:
# dispatch_length_gate enforces only the file cap; no fn/method leaf is wired yet.

Expand All @@ -27,7 +27,7 @@ dispatch_header

# ── deterministic gates ────────────────────────────────────────────
dispatch_length_gate 350 # FLL — file cap (fn/method 50/70 = TODO-CHECK)
dispatch_run_helper "UFS" "ufs.sh" "--all"
dispatch_run_helper "UFS" "ufs.sh" "--all" # full-tree on purpose: the per-edit lens must not be blind to an unstaged edit
dispatch_run_helper "LOG" "logging.sh" "--staged"
dispatch_run_helper "MSID" "msid-ui.sh" "--staged"

Expand Down
11 changes: 5 additions & 6 deletions dispatch/write_spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@

This is the prose the AGENT reads **before writing or editing a spec** under
`docs/v*/{pending,active,done}/`. It pairs with the deterministic half
`audits/spec.sh` (named `audits/spec-template.sh` until the Stage-2 rename),
which runs in `make lint`. (This is the former Spec Template gate absorbed into
`audits/spec-template.sh`, which runs in `make lint`. (This is the former Spec Template gate absorbed into
the dispatch model — `docs/TEMPLATE.md` remains the canonical section source.)

**Signal legend:**

- 🟢 / 🔴 — `audits/spec.sh` mechanically passes/fails the prohibited-pattern and
- 🟢 / 🔴 — `audits/spec-template.sh` mechanically passes/fails the prohibited-pattern and
required-section checks.
- 🔵 DECIDE — whether a required section is *meaningfully filled* (not just
present) is the agent's judgment at author time.
Expand Down Expand Up @@ -70,16 +69,16 @@ SPEC TEMPLATE GATE: <file> | prohibited:<0|list> required-sections:<all-present|

Full multi-line block fires on violation (prohibited sections / time estimates /
effort fields / %-complete / owner-date fields, each with line numbers, plus the
`audits/spec.sh` staged-diff finding count).
`audits/spec-template.sh` staged-diff finding count).

## Scope (M70)

`audits/spec.sh` walks the **full pending+active spec set** via `git ls-files`;
`audits/spec-template.sh` walks the **full pending+active spec set** via `git ls-files`;
the index includes staged-but-uncommitted content, so a fix staged in pre-commit
satisfies the check on the same hook run. `--staged` is the opt-in narrowing mode.

## Family

- `docs/TEMPLATE.md` — canonical Prohibited section + required sections.
- `kishore-spec-new` skill — creates specs from the template; inserts the banner.
- `audits/spec.sh` — mechanical regex enforcement, runs in `make lint`.
- `audits/spec-template.sh` — mechanical regex enforcement, runs in `make lint`.
Loading