From b397ea783df722c85d2040066b657b631dc69719 Mon Sep 17 00:00:00 2001 From: HiranoMasaaki Date: Fri, 13 Mar 2026 21:47:43 +0000 Subject: [PATCH 1/5] fix: add self-check checklist to plan expert for format enforcement Plan was generating old-format sections (3 Test Queries, Success Criteria, Failure Conditions) instead of the new format. Add explicit binary self-check rules that must pass before plan.md is finalized: - Exact section name matching (reject old names) - Single test query enforcement - Every signal must be a concrete command, not observation - No soft language in signals - Domain constraint coverage mapping Co-Authored-By: Claude Opus 4.6 (1M context) --- definitions/create-expert/perstack.toml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/definitions/create-expert/perstack.toml b/definitions/create-expert/perstack.toml index bb94ec80..f997d94d 100644 --- a/definitions/create-expert/perstack.toml +++ b/definitions/create-expert/perstack.toml @@ -178,6 +178,17 @@ Delegation tree with role assignments. Include one verifier expert that executes For each expert, write ONLY: name, one-line purpose, and role (executor or verifier). Do not write deliverables, constraints, or implementation details — that is write-definition's job. +## Self-Check Before Finalizing + +Re-read plan.md and verify each rule. If any check fails, fix plan.md before attemptCompletion. + +1. **Section names exact match**: plan.md uses exactly these section names — "Expert Purpose", "Domain Knowledge", "Use Cases", "Test Query", "Verification Signals", "Architecture". Sections named "Success Criteria", "Failure Conditions", "Test Queries" (plural), or "Observable Conditions" must not exist. +2. **Single test query**: "Test Query" section contains exactly one query, not multiple. +3. **Every signal is a command**: each entry in "Verification Signals" specifies a concrete command to execute and its expected result. Entries that describe what to observe or what correct output "looks like" without a command are not signals — rewrite them. +4. **No soft language in signals**: signals contain no phrases like "verify that", "check that", "should be", "looks correct", "works properly". Each signal is: run X → expect Y. +5. **Domain constraint coverage**: every constraint in "Domain Knowledge" is exercised by at least one signal. List which signal covers which constraint. +6. **Architecture is names only**: "Architecture" section contains expert name, one-line purpose, and role (executor/verifier) per expert. No deliverables, no constraints, no implementation details. + After writing plan.md, attemptCompletion with the file path. """ From c55a0913deee88a47854f744b57d4f779203854c Mon Sep 17 00:00:00 2001 From: HiranoMasaaki Date: Fri, 13 Mar 2026 21:50:06 +0000 Subject: [PATCH 2/5] fix: simplify section name check to reject any extra sections Co-Authored-By: Claude Opus 4.6 (1M context) --- definitions/create-expert/perstack.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/definitions/create-expert/perstack.toml b/definitions/create-expert/perstack.toml index f997d94d..06d00779 100644 --- a/definitions/create-expert/perstack.toml +++ b/definitions/create-expert/perstack.toml @@ -182,7 +182,7 @@ For each expert, write ONLY: name, one-line purpose, and role (executor or verif Re-read plan.md and verify each rule. If any check fails, fix plan.md before attemptCompletion. -1. **Section names exact match**: plan.md uses exactly these section names — "Expert Purpose", "Domain Knowledge", "Use Cases", "Test Query", "Verification Signals", "Architecture". Sections named "Success Criteria", "Failure Conditions", "Test Queries" (plural), or "Observable Conditions" must not exist. +1. **Section names exact match**: plan.md uses exactly these section names and no others — "Expert Purpose", "Domain Knowledge", "Use Cases", "Test Query", "Verification Signals", "Architecture". Extra sections confuse downstream experts. 2. **Single test query**: "Test Query" section contains exactly one query, not multiple. 3. **Every signal is a command**: each entry in "Verification Signals" specifies a concrete command to execute and its expected result. Entries that describe what to observe or what correct output "looks like" without a command are not signals — rewrite them. 4. **No soft language in signals**: signals contain no phrases like "verify that", "check that", "should be", "looks correct", "works properly". Each signal is: run X → expect Y. From bf1af65ddd9269237ad753d07e8128d6fef44400 Mon Sep 17 00:00:00 2001 From: HiranoMasaaki Date: Fri, 13 Mar 2026 21:54:13 +0000 Subject: [PATCH 3/5] fix: enforce user-specified team name as coordinator expert name The model was appending "-coordinator" to the user's team name (e.g., "bash-gaming" became "bash-gaming-coordinator"). Add explicit instruction that the coordinator name must be the exact team name with no suffix. Co-Authored-By: Claude Opus 4.6 (1M context) --- definitions/create-expert/perstack.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/definitions/create-expert/perstack.toml b/definitions/create-expert/perstack.toml index 06d00779..49849467 100644 --- a/definitions/create-expert/perstack.toml +++ b/definitions/create-expert/perstack.toml @@ -174,7 +174,7 @@ Every domain constraint from the Domain Knowledge section must be covered by at If a criterion cannot be expressed as a command with a deterministic expected result, rethink the criterion or the artifact design until it can. ### Architecture -Delegation tree with role assignments. Include one verifier expert that executes the hard signal checks defined in Verification Signals — the generator and the verifier share no context (context separation). The verifier is a single expert with exec capability, direct child of the coordinator, not nested under an executor. +Delegation tree with role assignments. The coordinator's expert name is the team name the user specified — do not append "-coordinator", "-main", or any suffix. Include one verifier expert that executes the hard signal checks defined in Verification Signals — the generator and the verifier share no context (context separation). The verifier is a single expert with exec capability, direct child of the coordinator, not nested under an executor. For each expert, write ONLY: name, one-line purpose, and role (executor or verifier). Do not write deliverables, constraints, or implementation details — that is write-definition's job. From f90d9f1f2d94bab7f622c0bcb496968519d8dad5 Mon Sep 17 00:00:00 2001 From: HiranoMasaaki Date: Fri, 13 Mar 2026 21:56:27 +0000 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20refine=20expert=20naming=20rules=20?= =?UTF-8?q?=E2=80=94=20conditional=20team=20name,=20verb-based=20delegates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Coordinator: use user-specified team name if given, no suffixes - Delegates: name by function (@name/test, /verify, /build), not persona (/tester, /coder, /designer) Co-Authored-By: Claude Opus 4.6 (1M context) --- definitions/create-expert/perstack.toml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/definitions/create-expert/perstack.toml b/definitions/create-expert/perstack.toml index 49849467..4c2eb06e 100644 --- a/definitions/create-expert/perstack.toml +++ b/definitions/create-expert/perstack.toml @@ -174,7 +174,13 @@ Every domain constraint from the Domain Knowledge section must be covered by at If a criterion cannot be expressed as a command with a deterministic expected result, rethink the criterion or the artifact design until it can. ### Architecture -Delegation tree with role assignments. The coordinator's expert name is the team name the user specified — do not append "-coordinator", "-main", or any suffix. Include one verifier expert that executes the hard signal checks defined in Verification Signals — the generator and the verifier share no context (context separation). The verifier is a single expert with exec capability, direct child of the coordinator, not nested under an executor. +Delegation tree with role assignments. + +Naming rules: +- Coordinator: if the user specified a team name, use it exactly — no "-coordinator", "-main", or other suffixes. +- Delegates: `@coordinator-name/verb-or-function` — name by what they do, not who they are. Use `/test`, `/verify`, `/plan`, `/build`, `/write`, not `/tester`, `/coder`, `/designer`. The name should be self-explanatory at a glance. + +Include one verifier expert that executes the hard signal checks defined in Verification Signals — the generator and the verifier share no context (context separation). The verifier is a single expert with exec capability, direct child of the coordinator, not nested under an executor. For each expert, write ONLY: name, one-line purpose, and role (executor or verifier). Do not write deliverables, constraints, or implementation details — that is write-definition's job. From aacf3b319fa0afde9fc8d2b54d0d542e0b8a1daa Mon Sep 17 00:00:00 2001 From: HiranoMasaaki Date: Fri, 13 Mar 2026 21:58:30 +0000 Subject: [PATCH 5/5] chore: bump create-expert version to 1.0.16 Co-Authored-By: Claude Opus 4.6 (1M context) --- definitions/create-expert/perstack.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/definitions/create-expert/perstack.toml b/definitions/create-expert/perstack.toml index 4c2eb06e..371ddd09 100644 --- a/definitions/create-expert/perstack.toml +++ b/definitions/create-expert/perstack.toml @@ -86,7 +86,7 @@ [experts."create-expert"] defaultModelTier = "high" -version = "1.0.15" +version = "1.0.16" description = "Creates and modifies Perstack expert definitions in perstack.toml" instruction = """ You are the coordinator for creating and modifying Perstack expert definitions. perstack.toml is the single source of truth — your job is to produce or modify it according to the user's request. @@ -131,7 +131,7 @@ pick = ["readTextFile", "exec", "attemptCompletion"] [experts."@create-expert/plan"] defaultModelTier = "high" -version = "1.0.15" +version = "1.0.16" description = """ Analyzes the user's request and produces plan.md: domain constraints, test query, verification signals, and role architecture. Provide: (1) what the expert should do, (2) path to existing perstack.toml if one exists. @@ -218,7 +218,7 @@ pick = [ [experts."@create-expert/build"] defaultModelTier = "low" -version = "1.0.15" +version = "1.0.16" description = """ Orchestrates the write → test → verify cycle for perstack.toml. Provide: path to plan.md (containing requirements, architecture, test query, and verification signals). @@ -272,7 +272,7 @@ pick = ["readTextFile", "exec", "todo", "attemptCompletion"] [experts."@create-expert/write-definition"] defaultModelTier = "low" -version = "1.0.15" +version = "1.0.16" description = """ Writes or modifies a perstack.toml definition from plan.md requirements and architecture. Provide: (1) path to plan.md, (2) optionally path to existing perstack.toml to preserve, (3) optionally feedback from a failed test to address. @@ -396,7 +396,7 @@ pick = [ [experts."@create-expert/verify-test"] defaultModelTier = "low" -version = "1.0.15" +version = "1.0.16" description = """ Executes hard signal checks against test-expert's results, verifies their reproducibility, and checks the definition structure. Provide: (1) the test-expert's factual report (query, what was produced, errors), (2) the verification signals from plan.md, (3) path to perstack.toml. @@ -459,7 +459,7 @@ pick = ["readTextFile", "exec", "todo", "attemptCompletion"] [experts."@create-expert/test-expert"] defaultModelTier = "low" -version = "1.0.15" +version = "1.0.16" description = """ Executes a single test query against a Perstack expert definition and reports what happened. Provide: (1) path to perstack.toml, (2) the test query to execute, (3) the coordinator expert name to test.