opensquid 0.5.407 → 0.5.426
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +5 -4
- package/dist/cli.js.map +1 -1
- package/dist/functions/event.d.ts.map +1 -1
- package/dist/functions/event.js +30 -0
- package/dist/functions/event.js.map +1 -1
- package/dist/functions/handoff_session_start.d.ts.map +1 -1
- package/dist/functions/handoff_session_start.js +4 -6
- package/dist/functions/handoff_session_start.js.map +1 -1
- package/dist/functions/index.d.ts +4 -0
- package/dist/functions/index.d.ts.map +1 -1
- package/dist/functions/index.js +5 -0
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/read_rubric.d.ts +27 -0
- package/dist/functions/read_rubric.d.ts.map +1 -0
- package/dist/functions/read_rubric.js +53 -0
- package/dist/functions/read_rubric.js.map +1 -0
- package/dist/functions/reset_scope_track_state.d.ts +20 -0
- package/dist/functions/reset_scope_track_state.d.ts.map +1 -0
- package/dist/functions/reset_scope_track_state.js +53 -0
- package/dist/functions/reset_scope_track_state.js.map +1 -0
- package/dist/functions/rubric_pre_inject.d.ts +22 -0
- package/dist/functions/rubric_pre_inject.d.ts.map +1 -0
- package/dist/functions/rubric_pre_inject.js +58 -0
- package/dist/functions/rubric_pre_inject.js.map +1 -0
- package/dist/functions/session_tool_history.d.ts +3 -3
- package/dist/functions/session_tool_history.js +1 -1
- package/dist/functions/session_tool_history.js.map +1 -1
- package/dist/functions/shell_parse.d.ts +41 -0
- package/dist/functions/shell_parse.d.ts.map +1 -0
- package/dist/functions/shell_parse.js +185 -0
- package/dist/functions/shell_parse.js.map +1 -0
- package/dist/functions/staged_docs_only.d.ts +23 -0
- package/dist/functions/staged_docs_only.d.ts.map +1 -0
- package/dist/functions/staged_docs_only.js +57 -0
- package/dist/functions/staged_docs_only.js.map +1 -0
- package/dist/mcp/server.js +14 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/ralph.d.ts +21 -0
- package/dist/mcp/tools/ralph.d.ts.map +1 -0
- package/dist/mcp/tools/ralph.js +18 -0
- package/dist/mcp/tools/ralph.js.map +1 -0
- package/dist/mcp/tools/workgraph.d.ts +11 -0
- package/dist/mcp/tools/workgraph.d.ts.map +1 -1
- package/dist/mcp/tools/workgraph.js +7 -0
- package/dist/mcp/tools/workgraph.js.map +1 -1
- package/dist/rag/backend_factory.d.ts.map +1 -1
- package/dist/rag/backend_factory.js +4 -0
- package/dist/rag/backend_factory.js.map +1 -1
- package/dist/rag/backends/libsql_lexical.d.ts.map +1 -1
- package/dist/rag/backends/libsql_lexical.js +21 -5
- package/dist/rag/backends/libsql_lexical.js.map +1 -1
- package/dist/rag/backends/libsql_store.d.ts.map +1 -1
- package/dist/rag/backends/libsql_store.js +33 -6
- package/dist/rag/backends/libsql_store.js.map +1 -1
- package/dist/rag/backends/perfile_source.d.ts.map +1 -1
- package/dist/rag/backends/perfile_source.js +3 -0
- package/dist/rag/backends/perfile_source.js.map +1 -1
- package/dist/rag/memory/consolidate.d.ts +3 -2
- package/dist/rag/memory/consolidate.d.ts.map +1 -1
- package/dist/rag/memory/consolidate.js +7 -4
- package/dist/rag/memory/consolidate.js.map +1 -1
- package/dist/rag/types.d.ts +2 -0
- package/dist/rag/types.d.ts.map +1 -1
- package/dist/rag/types.js.map +1 -1
- package/dist/runtime/bootstrap.d.ts.map +1 -1
- package/dist/runtime/bootstrap.js +8 -0
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/coding_flow_keys.d.ts +17 -0
- package/dist/runtime/coding_flow_keys.d.ts.map +1 -0
- package/dist/runtime/coding_flow_keys.js +21 -0
- package/dist/runtime/coding_flow_keys.js.map +1 -0
- package/dist/runtime/handoff/collect.d.ts.map +1 -1
- package/dist/runtime/handoff/collect.js +3 -1
- package/dist/runtime/handoff/collect.js.map +1 -1
- package/dist/runtime/hooks/session-start.js +5 -1
- package/dist/runtime/hooks/session-start.js.map +1 -1
- package/dist/runtime/hooks/session_id.d.ts +7 -0
- package/dist/runtime/hooks/session_id.d.ts.map +1 -1
- package/dist/runtime/hooks/session_id.js +30 -12
- package/dist/runtime/hooks/session_id.js.map +1 -1
- package/dist/runtime/protected_paths.d.ts +18 -0
- package/dist/runtime/protected_paths.d.ts.map +1 -0
- package/dist/runtime/protected_paths.js +18 -0
- package/dist/runtime/protected_paths.js.map +1 -0
- package/dist/runtime/ralph/decision_classifier.d.ts +18 -0
- package/dist/runtime/ralph/decision_classifier.d.ts.map +1 -0
- package/dist/runtime/ralph/decision_classifier.js +72 -0
- package/dist/runtime/ralph/decision_classifier.js.map +1 -0
- package/dist/runtime/ralph/escalate_lap.d.ts +31 -0
- package/dist/runtime/ralph/escalate_lap.d.ts.map +1 -0
- package/dist/runtime/ralph/escalate_lap.js +22 -0
- package/dist/runtime/ralph/escalate_lap.js.map +1 -0
- package/dist/runtime/ralph/escalator.d.ts +34 -0
- package/dist/runtime/ralph/escalator.d.ts.map +1 -0
- package/dist/runtime/ralph/escalator.js +19 -0
- package/dist/runtime/ralph/escalator.js.map +1 -0
- package/dist/runtime/ralph/lap_outcome.d.ts +43 -0
- package/dist/runtime/ralph/lap_outcome.d.ts.map +1 -0
- package/dist/runtime/ralph/lap_outcome.js +119 -0
- package/dist/runtime/ralph/lap_outcome.js.map +1 -0
- package/dist/runtime/ralph/orchestrator.d.ts +71 -0
- package/dist/runtime/ralph/orchestrator.d.ts.map +1 -0
- package/dist/runtime/ralph/orchestrator.js +74 -0
- package/dist/runtime/ralph/orchestrator.js.map +1 -0
- package/dist/runtime/ralph/ralph_template.d.ts +18 -0
- package/dist/runtime/ralph/ralph_template.d.ts.map +1 -0
- package/dist/runtime/ralph/ralph_template.js +61 -0
- package/dist/runtime/ralph/ralph_template.js.map +1 -0
- package/dist/runtime/ralph/supervisor.d.ts +30 -0
- package/dist/runtime/ralph/supervisor.d.ts.map +1 -0
- package/dist/runtime/ralph/supervisor.js +24 -0
- package/dist/runtime/ralph/supervisor.js.map +1 -0
- package/dist/runtime/session_state.d.ts +9 -1
- package/dist/runtime/session_state.d.ts.map +1 -1
- package/dist/runtime/session_state.js +25 -3
- package/dist/runtime/session_state.js.map +1 -1
- package/dist/runtime/wedge/compression_deps.d.ts.map +1 -1
- package/dist/runtime/wedge/compression_deps.js +9 -1
- package/dist/runtime/wedge/compression_deps.js.map +1 -1
- package/dist/setup/cli/gate.d.ts +7 -2
- package/dist/setup/cli/gate.d.ts.map +1 -1
- package/dist/setup/cli/gate.js +7 -3
- package/dist/setup/cli/gate.js.map +1 -1
- package/dist/setup/cli/ralph.d.ts +20 -0
- package/dist/setup/cli/ralph.d.ts.map +1 -0
- package/dist/setup/cli/ralph.js +168 -0
- package/dist/setup/cli/ralph.js.map +1 -0
- package/dist/setup/wizard/ralph_writer.d.ts +98 -0
- package/dist/setup/wizard/ralph_writer.d.ts.map +1 -0
- package/dist/setup/wizard/ralph_writer.js +114 -0
- package/dist/setup/wizard/ralph_writer.js.map +1 -0
- package/dist/workgraph/audience.d.ts +12 -0
- package/dist/workgraph/audience.d.ts.map +1 -0
- package/dist/workgraph/audience.js +10 -0
- package/dist/workgraph/audience.js.map +1 -0
- package/dist/workgraph/events.d.ts.map +1 -1
- package/dist/workgraph/events.js +34 -0
- package/dist/workgraph/events.js.map +1 -1
- package/dist/workgraph/store.d.ts.map +1 -1
- package/dist/workgraph/store.js +86 -12
- package/dist/workgraph/store.js.map +1 -1
- package/dist/workgraph/types.d.ts +33 -2
- package/dist/workgraph/types.d.ts.map +1 -1
- package/docs/rubric/author.md +17 -0
- package/docs/rubric/scope.md +16 -0
- package/package.json +3 -2
- package/packs/builtin/coding-flow/skills/entry-and-handoffs/skill.yaml +15 -0
- package/packs/builtin/coding-flow/skills/execute-gate/skill.yaml +9 -10
- package/packs/builtin/coding-flow/skills/scope-lifecycle/skill.yaml +72 -51
- package/packs/builtin/default-discipline/manifest.yaml +6 -3
- package/packs/builtin/default-discipline/skills/workflow/skill.yaml +19 -6
- package/packs/builtin/pack-architect/SKILL.md +10 -0
- package/packs/builtin/pack-architect/skills/skill-yaml-author-walkthrough/skill.yaml +7 -0
- package/packs/builtin/scope-architect/team.yaml +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/workgraph/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/workgraph/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,16 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export type EdgeType = 'blocks' | 'parent-child' | 'discovered-from' | 'related';
|
|
10
10
|
export type IssueStatus = 'open' | 'in_progress' | 'closed';
|
|
11
|
+
/**
|
|
12
|
+
* Who claimed an item, derived at claim time from the GDC env markers the gate already trusts
|
|
13
|
+
* (`AGENT_ENV_MARKERS` — CLAUDECODE / CODEX_THREAD_ID / AI_AGENT). Informational; the exactly-once
|
|
14
|
+
* guarantee comes from the claim token, not this field. (GR.1 of the gated-ralph loop.)
|
|
15
|
+
*/
|
|
16
|
+
export interface ClaimAudience {
|
|
17
|
+
source: 'claudecode' | 'codex' | 'unknown';
|
|
18
|
+
threadId?: string;
|
|
19
|
+
version?: string;
|
|
20
|
+
}
|
|
11
21
|
export interface Issue {
|
|
12
22
|
id: string;
|
|
13
23
|
title: string;
|
|
@@ -15,9 +25,13 @@ export interface Issue {
|
|
|
15
25
|
status: IssueStatus;
|
|
16
26
|
createdAt: string;
|
|
17
27
|
updatedAt: string;
|
|
28
|
+
claimToken?: string;
|
|
29
|
+
claimAudience?: ClaimAudience;
|
|
30
|
+
claimExpiresAt?: string;
|
|
31
|
+
wedgeReason?: string;
|
|
18
32
|
}
|
|
19
33
|
/** Event-sourced op-log types (slice 1d). Ops are the source of truth; issues/edges are folded. */
|
|
20
|
-
export type WgOpType = 'issue_created' | 'issue_set' | 'dep_added' | 'dep_removed';
|
|
34
|
+
export type WgOpType = 'issue_created' | 'issue_set' | 'dep_added' | 'dep_removed' | 'claim_acquired' | 'wedge_marked' | 'wedge_cleared';
|
|
21
35
|
export interface WgOp {
|
|
22
36
|
id: string;
|
|
23
37
|
issueId: string;
|
|
@@ -41,8 +55,25 @@ export interface WorkGraphStore {
|
|
|
41
55
|
body?: string;
|
|
42
56
|
}): Promise<Issue>;
|
|
43
57
|
addEdge(fromId: string, toId: string, type: EdgeType): Promise<void>;
|
|
44
|
-
/** Open issues with no un-closed `blocks` blocker, oldest-first
|
|
58
|
+
/** Open issues with no un-closed `blocks` blocker AND no live claim, oldest-first. */
|
|
45
59
|
listReady(): Promise<Issue[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Atomically claim an item for `ttlSec` (exactly-once CAS via a unique claim token). Returns
|
|
62
|
+
* `won:true` only for the single winner; concurrent/duplicate claims get `won:false`. An item
|
|
63
|
+
* whose prior claim has expired is claimable again (query-time staleness). (GR.1.)
|
|
64
|
+
*/
|
|
65
|
+
claimIssue(id: string, audience: ClaimAudience, ttlSec: number): Promise<{
|
|
66
|
+
won: boolean;
|
|
67
|
+
expiresAt: string;
|
|
68
|
+
}>;
|
|
69
|
+
/**
|
|
70
|
+
* Mark an item as wedged (GR.3): a re-attempt SKIPS it (it's escalated, not retried) so the
|
|
71
|
+
* supervisor can't crash-loop the same wall. Excluded from `listReady` until the reason is cleared.
|
|
72
|
+
*/
|
|
73
|
+
wedgeMark(id: string, reason: string): Promise<void>;
|
|
74
|
+
/** Clear a wedge-mark (GR.4 human-override resolution): `wedge_reason` → null → the item re-enters
|
|
75
|
+
* `listReady` for another lap. The residual-shrink path's un-wedge. */
|
|
76
|
+
clearWedge(id: string): Promise<void>;
|
|
46
77
|
/** The append-only op-log for an issue, in (lamport, id) order. */
|
|
47
78
|
listEvents(issueId: string): Promise<WgOp[]>;
|
|
48
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workgraph/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAEjF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE5D,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workgraph/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAEjF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,mGAAmG;AACnG,MAAM,MAAM,QAAQ,GAChB,eAAe,GACf,WAAW,GACX,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,eAAe,CAAC;AAEpB,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,WAAW,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC5C,UAAU,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,WAAW,CACT,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7D,OAAO,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,sFAAsF;IACtF,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9B;;;;OAIG;IACH,UAAU,CACR,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,GAAG,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD;2EACuE;IACvE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,mEAAmE;IACnE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;CAC9C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# AUTHOR rubric — the spec-audit's pass criteria
|
|
2
|
+
|
|
3
|
+
The canonical, single-source rubric the coding-flow AUTHOR gate applies to a task spec. Read whole by
|
|
4
|
+
`read_rubric(name: author)` and (a) interpolated into the spec-audit prompt and (b) injected to the agent
|
|
5
|
+
before authoring. Edit HERE — both the audit and the agent reflect the change (no second copy).
|
|
6
|
+
|
|
7
|
+
A task spec passes (`VERDICT: SPEC_COMPLETE`) ONLY if all three hold:
|
|
8
|
+
|
|
9
|
+
1. **11-FIELD CONTRACT** — EVERY "### Task" block has all 11 fields (Required skills, Deliverable, Depends on,
|
|
10
|
+
Files affected, Key code shapes, Test fixtures, Acceptance criteria, Risk callouts, References,
|
|
11
|
+
Verification commands, 7-phase steps); every Key-code-shapes block is REAL code (not pseudocode); every
|
|
12
|
+
7-phase step names concrete files/decisions.
|
|
13
|
+
2. **100% DESIGN COVERAGE** — the task set covers EVERY element of the SCOPE design — no design item is left
|
|
14
|
+
without a task.
|
|
15
|
+
3. **SIMPLICITY** — the design is the SIMPLEST correct solution: no proliferating special-cases (that signals
|
|
16
|
+
a missed decomposition), every lifecycle an explicit total-transition FSM, every transform a pure
|
|
17
|
+
function, no implicit state.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# SCOPE rubric — the guess-audit's pass criteria
|
|
2
|
+
|
|
3
|
+
The canonical, single-source rubric the coding-flow SCOPE gate applies to a pre-research / scope artifact.
|
|
4
|
+
Read whole by `read_rubric(name: scope)` and (a) interpolated into the guess-audit prompt and (b) injected to
|
|
5
|
+
the agent before authoring. Edit HERE — both the audit and the agent reflect the change (no second copy).
|
|
6
|
+
|
|
7
|
+
A pre-research / scope artifact passes (`VERDICT: GUESS_FREE`) ONLY if all three hold:
|
|
8
|
+
|
|
9
|
+
1. **NEVER-GUESS** — a claim is acceptable ONLY if DERIVED from cited evidence (a `file:line`, a memory, or
|
|
10
|
+
the user's own words) OR explicitly flagged as an unresolved open question — an unchecked
|
|
11
|
+
`- [ ] OPEN QUESTION: …` task-list marker — to ask the user (resolve it by checking the box `- [x]`).
|
|
12
|
+
2. **BEST-SOLUTION** — the artifact must show the best solution was found: alternatives weighed against the
|
|
13
|
+
criteria and the SIMPLEST correct one chosen (no proliferating special-cases).
|
|
14
|
+
3. **FULL-FIX** — the chosen solution must be the FULL fix: when the existing shape is the cause, it is
|
|
15
|
+
re-architected, NOT a local patch that bolts on a special-case to dodge the rework (that patch is itself
|
|
16
|
+
the proliferating-special-case overcomplication the Full-fix-over-patch guideline forbids).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opensquid",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.426",
|
|
4
4
|
"description": "Continuity layer for coding agents: durable memory, dependency-aware task state, workflow gates, and inspectable packs over MCP.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
"packs/builtin",
|
|
27
27
|
"docs/pack-runtime.md",
|
|
28
28
|
"docs/skill-grammar-guide.md",
|
|
29
|
-
"docs/load-budget.md"
|
|
29
|
+
"docs/load-budget.md",
|
|
30
|
+
"docs/rubric"
|
|
30
31
|
],
|
|
31
32
|
"engines": {
|
|
32
33
|
"node": ">=20.0.0"
|
|
@@ -39,6 +39,12 @@ rules:
|
|
|
39
39
|
args:
|
|
40
40
|
key: coding-flow-track
|
|
41
41
|
value: feature
|
|
42
|
+
# wg-4c48ef1b9969: clear the per-track scope state (pre-research/spec/design
|
|
43
|
+
# pointers) as a UNIT so a shipped track's artifacts don't leak into the new
|
|
44
|
+
# track (renderer re-fires the finished track; AUTHOR audit reads stale design).
|
|
45
|
+
# Best-effort, ordered AFTER advance_fsm — never blocks the arm.
|
|
46
|
+
- call: reset_scope_track_state
|
|
47
|
+
if: 'len(intent.matched) > 0'
|
|
42
48
|
# GF.5 (F5): a feature-intent probe. A downgrade to fix/doc/trivial applies ONLY
|
|
43
49
|
# when NO feature-intent keyword is present — a mixed-intent prompt ("build X and
|
|
44
50
|
# fix Y") stays `feature` (strictest), so one stray keyword can't disable the
|
|
@@ -83,6 +89,15 @@ rules:
|
|
|
83
89
|
args:
|
|
84
90
|
key: coding-flow-track
|
|
85
91
|
value: trivial
|
|
92
|
+
# TR.B (wg-2d1d8698f563): deliver the coding-flow quality rubric to the agent BEFORE it authors — the
|
|
93
|
+
# fix for the blind-first-draft root cause. Placed AFTER enter-scoping so the cold kickoff turn's
|
|
94
|
+
# just-armed `scoping` is visible (rules walk file-order; handoff-rescope-nudge below relies on the same
|
|
95
|
+
# ordering). rubric_pre_inject reads the coding-flow FSM and, when in an active SCOPE/AUTHOR phase, returns
|
|
96
|
+
# an inject_context payload carrying the FULL rubric (scope + author — prompt_submit can't track mid-turn
|
|
97
|
+
# phase advances, so one injection must cover the whole uninterrupted turn). Inject-only; never blocks.
|
|
98
|
+
- id: inject-rubric
|
|
99
|
+
process:
|
|
100
|
+
- call: rubric_pre_inject
|
|
86
101
|
# GF.1 (F9) — the re-scope NUDGE, surfaced on prompt_submit (where directives are
|
|
87
102
|
# delivered) for the `scoping` state. Fires after `enter-scoping` advanced idle→scoping
|
|
88
103
|
# (or after task-start's task_unscoped reset, or GF.7's phases_complete re-arm landed
|
|
@@ -15,17 +15,16 @@ triggers:
|
|
|
15
15
|
rules:
|
|
16
16
|
- id: phase-logged-before-commit
|
|
17
17
|
process:
|
|
18
|
-
-
|
|
18
|
+
# T-GATE-MATCHER-SUBSTRING (GM.3, wg-52e57e2ed252): was a raw-string `match_command`
|
|
19
|
+
# regex `\bgit…commit\b` over the whole command — it false-fired on `git commit` inside a
|
|
20
|
+
# grep pattern, an echo arg, or a quoted subprocess prompt (`claude -p "…git commit…"`).
|
|
21
|
+
# `command_invokes` parses the command into real shell segments and matches only a genuine
|
|
22
|
+
# `git commit` INVOCATION (compounds like `cd x && git commit` still match; the owned git
|
|
23
|
+
# pre-commit hook stays the hard boundary). Recall-over-precision band-aid retired.
|
|
24
|
+
- call: command_invokes
|
|
19
25
|
args:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
# actually made, since the Bash tool resets cwd) starts with `cd` and EVADED the
|
|
23
|
-
# gate entirely. The gate was dead for real commits. Match `git … commit` ANYWHERE
|
|
24
|
-
# (`\b`, like the sibling no-verify matcher) so compounds can't slip past. A false
|
|
25
|
-
# match on a string that merely mentions `git commit` is the safe direction (recall
|
|
26
|
-
# over precision, same as no-verify-block).
|
|
27
|
-
pattern: '\bgit\s+(?:-[cC]\s+\S+\s+)*commit\b'
|
|
28
|
-
target: tool_args.command
|
|
26
|
+
program: git
|
|
27
|
+
subcommand: commit
|
|
29
28
|
as: committing
|
|
30
29
|
# T-FLOW-UNSKIPPABLE FU.1 (D1): the gates must COMPOSE. The "no active task ⇒
|
|
31
30
|
# ad-hoc ⇒ allow" branch below was a SEAM — a blocked TaskCreate (AUTHOR gate)
|
|
@@ -43,7 +43,9 @@ rules:
|
|
|
43
43
|
# checks run BEFORE the advance, and research_done is COUPLED to them — no
|
|
44
44
|
# advisory pass. The advance fires ONLY when SCOPE content is complete:
|
|
45
45
|
# GUESS_FREE (every claim cited-or-flagged + the BEST/simplest solution justified)
|
|
46
|
-
# AND zero unresolved
|
|
46
|
+
# AND zero unresolved open-question markers (an unchecked `- [ ] OPEN QUESTION:` task-list
|
|
47
|
+
# item — GM.3 made this a STRUCTURED marker so prose that merely mentions the phrase no
|
|
48
|
+
# longer false-blocks) AND research depth >= 3 this turn.
|
|
47
49
|
- id: scope-advance
|
|
48
50
|
process:
|
|
49
51
|
- call: tool_name
|
|
@@ -74,7 +76,11 @@ rules:
|
|
|
74
76
|
- call: session_tool_history
|
|
75
77
|
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-")'
|
|
76
78
|
args:
|
|
77
|
-
|
|
79
|
+
# wg-3e241144f441: per-track window (reset at scope_start, survives turn
|
|
80
|
+
# boundaries) — research legitimately spans turns, so current_turn false-fired.
|
|
81
|
+
# filter_names UNCHANGED: Grep is harmless-when-dead, signal-preserving-when-live
|
|
82
|
+
# (Bash:read-only only covers grep dispatched AS Bash, not a native Grep tool).
|
|
83
|
+
scope: since_scope_start
|
|
78
84
|
filter_names: [mcp__opensquid__recall, Read, Grep, 'Bash:read-only']
|
|
79
85
|
as: depth
|
|
80
86
|
# The content audit: NEVER-GUESS + BEST-SOLUTION, one combined verdict.
|
|
@@ -90,8 +96,23 @@ rules:
|
|
|
90
96
|
# latency (268s worst observed under subscription contention, 2026-06-10)
|
|
91
97
|
# and 20s under the 360s outer hook cap the setup wizard writes — the
|
|
92
98
|
# inner timer must die first so the gate fails with a readable error.
|
|
93
|
-
-
|
|
99
|
+
# TR.A (wg-2d1d8698f563): the rubric is single-sourced to docs/rubric/scope.md and interpolated as
|
|
100
|
+
# {{rubric}} below — NOT hardcoded here. read_rubric returns null on a missing/unreadable fragment.
|
|
101
|
+
- call: read_rubric
|
|
94
102
|
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-")'
|
|
103
|
+
args: { name: scope }
|
|
104
|
+
as: rubric
|
|
105
|
+
# FAIL-LOUD: never run the audit rubric-less (a rubric-less verdict would be a silent fallback worse
|
|
106
|
+
# than fail-open). docs/rubric/scope.md MUST ship (package.json files[]).
|
|
107
|
+
- call: verdict
|
|
108
|
+
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && rubric == null'
|
|
109
|
+
args:
|
|
110
|
+
level: block
|
|
111
|
+
message: >-
|
|
112
|
+
SCOPE audit cannot run: the canonical rubric (docs/rubric/scope.md) is unreadable — a
|
|
113
|
+
packaging/install fault, NOT a content failure. Verify the opensquid package ships docs/rubric/.
|
|
114
|
+
- call: cached_audit
|
|
115
|
+
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && rubric != null'
|
|
95
116
|
on_error: continue
|
|
96
117
|
args:
|
|
97
118
|
cache_key: coding-flow-guess-audit-cache
|
|
@@ -99,16 +120,8 @@ rules:
|
|
|
99
120
|
timeout_ms: 340000
|
|
100
121
|
prompt: >-
|
|
101
122
|
You are an adversarial reviewer enforcing the lexicon's Research/Audit flow
|
|
102
|
-
principles
|
|
103
|
-
|
|
104
|
-
evidence (a file:line, a memory, or the user's own words) OR explicitly flagged
|
|
105
|
-
as an OPEN QUESTION to ask the user. (2) BEST-SOLUTION: the artifact must show
|
|
106
|
-
the best solution was found — alternatives weighed against the criteria and the
|
|
107
|
-
SIMPLEST correct one chosen per docs/lexicon.md (no proliferating special-cases).
|
|
108
|
-
(3) FULL-FIX: the chosen solution must be the FULL fix — when the existing shape
|
|
109
|
-
is the cause, it is re-architected, NOT a local patch that bolts on a special-case
|
|
110
|
-
to dodge the rework (that patch is itself the proliferating-special-case
|
|
111
|
-
overcomplication the Full-fix-over-patch guideline forbids).
|
|
123
|
+
principles on a pre-research / scope artifact. Apply EXACTLY this rubric (the single
|
|
124
|
+
canonical source, docs/rubric/scope.md):\n\n{{rubric}}\n\n
|
|
112
125
|
Begin your response with EXACTLY one line — `VERDICT: GUESS_FREE` ONLY if every
|
|
113
126
|
claim is cited-or-flagged-open AND the simplest-correct solution is justified
|
|
114
127
|
against alternatives AND is a full fix, not a patch around a design that should be
|
|
@@ -120,18 +133,20 @@ rules:
|
|
|
120
133
|
# audit-string trichotomy below is a clean partition over its own subspace.
|
|
121
134
|
# BLOCK: unresolved open questions — answer them in SCOPE (this is the interactive phase).
|
|
122
135
|
- call: verdict
|
|
123
|
-
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") &&
|
|
136
|
+
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && match(effective, "(?im)^\\s*-\\s*\\[ \\]\\s*open[ _-]?question")'
|
|
124
137
|
args:
|
|
125
138
|
level: block
|
|
126
139
|
message: >-
|
|
127
|
-
SCOPE incomplete: the pre-research still has unresolved
|
|
128
|
-
|
|
129
|
-
the
|
|
130
|
-
|
|
140
|
+
SCOPE incomplete: the pre-research still has an unresolved open-question marker
|
|
141
|
+
(an unchecked `- [ ] OPEN QUESTION: …` task-list item). SCOPE is the interactive
|
|
142
|
+
phase — ASK the user (AskUserQuestion), record + cite the answer, then CHECK THE BOX
|
|
143
|
+
(`- [x]`) or remove the item BEFORE authoring. Everything after scope is automated;
|
|
144
|
+
a question must not survive into it. (Merely MENTIONING the phrase in prose is fine —
|
|
145
|
+
only an unchecked checkbox marker blocks.)
|
|
131
146
|
# BLOCK: shallow research (folded DPC.5 depth). Ordered after open-question; its
|
|
132
|
-
# !
|
|
147
|
+
# !match(OQ-marker) guard keeps the two preconditions mutually exclusive.
|
|
133
148
|
- call: verdict
|
|
134
|
-
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && !
|
|
149
|
+
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && !match(effective, "(?im)^\\s*-\\s*\\[ \\]\\s*open[ _-]?question") && depth.count < 3'
|
|
135
150
|
args:
|
|
136
151
|
level: block
|
|
137
152
|
message: >-
|
|
@@ -141,17 +156,17 @@ rules:
|
|
|
141
156
|
# {GUESS_FREE, UNRESOLVED, no-VERDICT} is a total partition of the audit string.
|
|
142
157
|
# PASS → advance.
|
|
143
158
|
- call: advance_fsm
|
|
144
|
-
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && depth.count >= 3 && !
|
|
159
|
+
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && depth.count >= 3 && !match(effective, "(?im)^\\s*-\\s*\\[ \\]\\s*open[ _-]?question") && contains(audit, "VERDICT: GUESS_FREE")'
|
|
145
160
|
args:
|
|
146
161
|
event: research_done
|
|
147
162
|
# CONTENT-FAIL → loop-back + warn (keyed POSITIVELY on UNRESOLVED, not !GUESS_FREE — so an
|
|
148
163
|
# audit that could not run no longer masquerades as "guesses found").
|
|
149
164
|
- call: advance_fsm
|
|
150
|
-
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && depth.count >= 3 && !
|
|
165
|
+
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && depth.count >= 3 && !match(effective, "(?im)^\\s*-\\s*\\[ \\]\\s*open[ _-]?question") && contains(audit, "VERDICT: UNRESOLVED")'
|
|
151
166
|
args:
|
|
152
167
|
event: guess_found
|
|
153
168
|
- call: verdict
|
|
154
|
-
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && depth.count >= 3 && !
|
|
169
|
+
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && depth.count >= 3 && !match(effective, "(?im)^\\s*-\\s*\\[ \\]\\s*open[ _-]?question") && contains(audit, "VERDICT: UNRESOLVED")'
|
|
155
170
|
args:
|
|
156
171
|
level: warn
|
|
157
172
|
message: >-
|
|
@@ -162,7 +177,7 @@ rules:
|
|
|
162
177
|
# AUDIT-UNAVAILABLE → terminal BLOCK, NO advance (stays scoping, re-armable). F0c fix:
|
|
163
178
|
# the audit subagent could not spawn (a no-VERDICT response, incl. the bound err message).
|
|
164
179
|
- call: verdict
|
|
165
|
-
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && depth.count >= 3 && !
|
|
180
|
+
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/research/") && contains(targs.file_path, "-pre-research-") && depth.count >= 3 && !match(effective, "(?im)^\\s*-\\s*\\[ \\]\\s*open[ _-]?question") && rubric != null && !contains(audit, "VERDICT:")'
|
|
166
181
|
args:
|
|
167
182
|
level: block
|
|
168
183
|
message: >-
|
|
@@ -210,25 +225,29 @@ rules:
|
|
|
210
225
|
# SCOPE audit — a re-fire on an UNCHANGED spec reuses the verdict, no spawn.
|
|
211
226
|
# timeout_ms (T-AUDIT-SPAWN-FIX): 340s, same measured sizing as the SCOPE
|
|
212
227
|
# audit above (268s worst observed; 20s under the 360s outer hook cap).
|
|
213
|
-
-
|
|
228
|
+
# TR.A (wg-2d1d8698f563): the AUTHOR rubric is single-sourced to docs/rubric/author.md,
|
|
229
|
+
# interpolated as {{rubric}} below — NOT hardcoded. Fail-loud on a missing fragment (below).
|
|
230
|
+
- call: read_rubric
|
|
214
231
|
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/tasks/T-") && endsWith(targs.file_path, ".md")'
|
|
232
|
+
args: { name: author }
|
|
233
|
+
as: rubric
|
|
234
|
+
- call: verdict
|
|
235
|
+
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/tasks/T-") && endsWith(targs.file_path, ".md") && rubric == null'
|
|
236
|
+
args:
|
|
237
|
+
level: block
|
|
238
|
+
message: >-
|
|
239
|
+
AUTHOR audit cannot run: the canonical rubric (docs/rubric/author.md) is unreadable — a
|
|
240
|
+
packaging/install fault, NOT a content failure. Verify the opensquid package ships docs/rubric/.
|
|
241
|
+
- call: cached_audit
|
|
242
|
+
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/tasks/T-") && endsWith(targs.file_path, ".md") && rubric != null'
|
|
215
243
|
on_error: continue
|
|
216
244
|
args:
|
|
217
245
|
cache_key: coding-flow-spec-audit-cache
|
|
218
246
|
model: reasoning
|
|
219
247
|
timeout_ms: 340000
|
|
220
248
|
prompt: >-
|
|
221
|
-
You are an adversarial reviewer enforcing THREE author-completeness rules.
|
|
222
|
-
|
|
223
|
-
skills, Deliverable, Depends on, Files affected, Key code shapes, Test
|
|
224
|
-
fixtures, Acceptance criteria, Risk callouts, References, Verification
|
|
225
|
-
commands, 7-phase steps), every Key-code-shapes block is REAL code (not
|
|
226
|
-
pseudocode), every 7-phase step names concrete files/decisions. (2) 100%
|
|
227
|
-
DESIGN COVERAGE: the task set covers EVERY element of the SCOPE design below —
|
|
228
|
-
no design item is left without a task. (3) SIMPLICITY (per docs/lexicon.md):
|
|
229
|
-
the design is the SIMPLEST correct solution — no proliferating special-cases
|
|
230
|
-
(that signals a missed decomposition), every lifecycle an explicit
|
|
231
|
-
total-transition FSM, every transform a pure function, no implicit state.
|
|
249
|
+
You are an adversarial reviewer enforcing THREE author-completeness rules. Apply EXACTLY
|
|
250
|
+
this rubric (the single canonical source, docs/rubric/author.md):\n\n{{rubric}}\n\n
|
|
232
251
|
Begin your response with EXACTLY one line — `VERDICT: SPEC_COMPLETE` ONLY if
|
|
233
252
|
ALL THREE hold; otherwise `VERDICT: INCOMPLETE` + one bullet per offending
|
|
234
253
|
block, uncovered design element, OR over-complected smell. Never say
|
|
@@ -256,7 +275,7 @@ rules:
|
|
|
256
275
|
Audit:\n\n{{spec_audit}}
|
|
257
276
|
# AUDIT-UNAVAILABLE → BLOCK, no advance (stays spec_authored, re-armable). F0c fix.
|
|
258
277
|
- call: verdict
|
|
259
|
-
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/tasks/T-") && endsWith(targs.file_path, ".md") && !contains(spec_audit, "VERDICT:")'
|
|
278
|
+
if: '(tool == "Write" || tool == "Edit") && contains(targs.file_path, "docs/tasks/T-") && endsWith(targs.file_path, ".md") && rubric != null && !contains(spec_audit, "VERDICT:")'
|
|
260
279
|
args:
|
|
261
280
|
level: block
|
|
262
281
|
message: >-
|
|
@@ -299,25 +318,27 @@ rules:
|
|
|
299
318
|
code commit/push that has not completed the flow.)
|
|
300
319
|
# ── verify-skip detector: the ONE closed opt-out token (GF.3) ────────────────
|
|
301
320
|
# The git gate (GF.2) is bypassable only by passing the verify-skipping flag to `git
|
|
302
|
-
# commit/push`
|
|
303
|
-
#
|
|
304
|
-
#
|
|
305
|
-
#
|
|
306
|
-
#
|
|
307
|
-
#
|
|
308
|
-
#
|
|
309
|
-
#
|
|
321
|
+
# commit/push` — a single explicit opt-out (not a denylist over an open set), so it is a
|
|
322
|
+
# hard BLOCK. `git push -n` is --dry-run, NOT a verify-skip, so `-n` is matched for `commit`
|
|
323
|
+
# ONLY (git-commit(1) `-n,--no-verify`; git-push(1) `-n,--dry-run`).
|
|
324
|
+
# T-GATE-MATCHER-SUBSTRING (GM.3, wg-52e57e2ed252): was a raw-string `match_command` that
|
|
325
|
+
# false-fired on a read-only `grep -n "…git commit…"` (the prose `git commit` + grep's `-n`).
|
|
326
|
+
# `command_invokes` parses real shell segments and detects the flag only WITHIN a genuine git
|
|
327
|
+
# invocation — so a real `git commit --no-verify`/`-n` still blocks (recall preserved within the
|
|
328
|
+
# invocation), but prose/grep/echo no longer trip it. The old "over-block is intentional"
|
|
329
|
+
# band-aid is retired: blocking read-only work gave zero bypass-protection value.
|
|
310
330
|
- id: no-verify-block
|
|
311
331
|
process:
|
|
312
332
|
- call: tool_name
|
|
313
333
|
as: tool
|
|
314
|
-
- call:
|
|
315
|
-
args:
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
334
|
+
- call: command_invokes
|
|
335
|
+
args: { program: git, subcommand: commit, flag_any: ['--no-verify', '-n'] }
|
|
336
|
+
as: skip_commit
|
|
337
|
+
- call: command_invokes
|
|
338
|
+
args: { program: git, subcommand: push, flag_any: ['--no-verify'] }
|
|
339
|
+
as: skip_push
|
|
319
340
|
- call: verdict
|
|
320
|
-
if: '(tool == "Bash") &&
|
|
341
|
+
if: '(tool == "Bash") && (skip_commit || skip_push)'
|
|
321
342
|
args:
|
|
322
343
|
level: block
|
|
323
344
|
message: >-
|
|
@@ -34,13 +34,16 @@ evolves: true
|
|
|
34
34
|
# command-boundary prefixes survive).
|
|
35
35
|
guards:
|
|
36
36
|
# git hygiene (block_tool)
|
|
37
|
+
# T-GATE-MATCHER-SUBSTRING (GM.3, wg-52e57e2ed252): structural — matches a real
|
|
38
|
+
# `git commit --amend` invocation, not the substring inside a grep/echo/prompt.
|
|
37
39
|
- name: never-amend
|
|
38
40
|
on: tool_call
|
|
39
41
|
detect:
|
|
40
|
-
call:
|
|
42
|
+
call: command_invokes
|
|
41
43
|
args:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
program: git
|
|
45
|
+
subcommand: commit
|
|
46
|
+
flag_any: ['--amend']
|
|
44
47
|
when: hit
|
|
45
48
|
level: block
|
|
46
49
|
message: >-
|
|
@@ -34,23 +34,36 @@ rules:
|
|
|
34
34
|
|
|
35
35
|
- id: phase-logged-before-commit
|
|
36
36
|
process:
|
|
37
|
-
-
|
|
37
|
+
# T-GATE-MATCHER-SUBSTRING (GM.3, wg-52e57e2ed252): was a raw-string regex over the whole
|
|
38
|
+
# command (boundary-anchored, but still matched `; git commit` inside a quoted echo/prompt).
|
|
39
|
+
# `command_invokes` parses real shell segments → matches only a genuine `git commit`
|
|
40
|
+
# invocation (compounds like `cd … && git commit` still match).
|
|
41
|
+
- call: command_invokes
|
|
38
42
|
args:
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
program: git
|
|
44
|
+
subcommand: commit
|
|
41
45
|
as: committing
|
|
42
46
|
- call: read_state
|
|
43
47
|
if: committing
|
|
44
48
|
args:
|
|
45
49
|
key: workflow.phases_logged
|
|
46
50
|
as: phases
|
|
51
|
+
# Docs-only parity (wg-3dcca3b29ed1): consult the STAGED diff the way the
|
|
52
|
+
# git-owned hard gate (gate.ts isDocsOnly) does, so the nudge mirrors the
|
|
53
|
+
# boundary instead of over-blocking a docs-only commit. The step runs only
|
|
54
|
+
# when committing; `staged_docs_only` fails toward `false` (= not docs-only
|
|
55
|
+
# = block stands) on any git error.
|
|
56
|
+
- call: staged_docs_only
|
|
57
|
+
if: committing
|
|
58
|
+
as: docs_only
|
|
47
59
|
# FU.9: `read_state` returns the ledger OBJECT `{task_id, phases:[...]}`,
|
|
48
60
|
# never the string "complete" — the prior `phases != "complete"` was always
|
|
49
61
|
# true (object !== string), so paired with the old exit-0 halt stub the gate
|
|
50
|
-
# silently no-op'd. Block when fewer than all 7 phases are logged
|
|
51
|
-
# returns 0 for a null/absent ledger →
|
|
62
|
+
# silently no-op'd. Block when fewer than all 7 phases are logged AND the
|
|
63
|
+
# staged diff is not docs-only. `len` returns 0 for a null/absent ledger →
|
|
64
|
+
# 0 < 7 → blocks a zero-phase code commit; `!docs_only` lets docs-only pass.
|
|
52
65
|
- call: verdict
|
|
53
|
-
if: 'committing && len(phases.phases) < 7'
|
|
66
|
+
if: 'committing && len(phases.phases) < 7 && !docs_only'
|
|
54
67
|
args:
|
|
55
68
|
level: block
|
|
56
69
|
message: >-
|
|
@@ -35,6 +35,16 @@ but the chain-handoff stalls.
|
|
|
35
35
|
| `skill-yaml-author-walkthrough` | PreToolUse Edit/Write of `packs/*/skills/*/skill.yaml` | Surface verdict with skill-field checklist (cites pack-runtime.md §2 + skill-grammar-guide.md) |
|
|
36
36
|
| `fsm-author-walkthrough` | PreToolUse Edit/Write of `packs/*/fsm.yaml` | Surface verdict with FSM checklist (cites pack-fsm-architecture.md; coding-flow example) |
|
|
37
37
|
|
|
38
|
+
### Discipline: gates teach their rubric (TR.C, wg-2d1d8698f563)
|
|
39
|
+
|
|
40
|
+
A gate is not just a blocker — it must TEACH its bar. If a skill emits a block/audit verdict with a content
|
|
41
|
+
rubric (like coding-flow's guess/spec audits), it must ship a companion that DELIVERS that rubric to the
|
|
42
|
+
agent BEFORE the gated action, sourced from the gate's single canonical rubric (e.g. `read_rubric` →
|
|
43
|
+
`inject_context` at `prompt_submit`). Otherwise the agent authors content-blind and learns the bar only by
|
|
44
|
+
tripping the gate. Light block/warn gates (no heavy content rubric) teach via a remedy-naming message
|
|
45
|
+
instead. The `skill-yaml-author-walkthrough` checklist enforces this; the coding-flow pairing is the
|
|
46
|
+
reference implementation.
|
|
47
|
+
|
|
38
48
|
## The 4-phase pack-authoring workflow (when spawned as profession)
|
|
39
49
|
|
|
40
50
|
1. **Identify scope + persona** — kind/usage decisions, detected_by
|
|
@@ -45,6 +45,13 @@ rules:
|
|
|
45
45
|
functions per skill-grammar-guide.md
|
|
46
46
|
[ ] Final step emits a verdict
|
|
47
47
|
(pass / block / warn / surface / directive)
|
|
48
|
+
[ ] GATES TEACH (TR.C, wg-2d1d8698f563): if a rule emits a
|
|
49
|
+
block/audit verdict (a GATE with a content rubric), ship a
|
|
50
|
+
companion that DELIVERS that gate's rubric to the agent BEFORE
|
|
51
|
+
the gated action, sourced from the gate's canonical rubric
|
|
52
|
+
(e.g. read_rubric → inject_context at prompt_submit). A gate
|
|
53
|
+
teaches its bar; it does not only block. (Light block/warn
|
|
54
|
+
gates teach via a remedy-naming message instead.)
|
|
48
55
|
[ ] For directive verdict: next_action is skill XOR tool
|
|
49
56
|
XOR profession (exactly one)
|
|
50
57
|
[ ] No vendor model names anywhere (use model_alias)
|
|
@@ -61,5 +61,8 @@ roles:
|
|
|
61
61
|
weighed against the criteria with the SIMPLEST-correct chosen;
|
|
62
62
|
failure-modes / inversion; an empirical-spike note; a scope boundary;
|
|
63
63
|
and EVERY claim cited (file:line / memory / the user's words) or
|
|
64
|
-
flagged
|
|
65
|
-
|
|
64
|
+
flagged as an unchecked `- [ ] OPEN QUESTION: …` task-list marker — and
|
|
65
|
+
such a marker must be resolved with the user IN SCOPE before the write
|
|
66
|
+
(check the box `- [x]` once answered), never carried unresolved into the
|
|
67
|
+
artifact. (Merely discussing an open question in prose is fine; only an
|
|
68
|
+
unchecked checkbox marker blocks the advance.)
|