diff --git a/autoplan/SKILL.md b/autoplan/SKILL.md index b23da543c..6696664ff 100644 --- a/autoplan/SKILL.md +++ b/autoplan/SKILL.md @@ -134,6 +134,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/canary/SKILL.md b/canary/SKILL.md index 00c96e2d0..c99709187 100644 --- a/canary/SKILL.md +++ b/canary/SKILL.md @@ -127,6 +127,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/codex/SKILL.md b/codex/SKILL.md index c5b6ed879..9b3d45302 100644 --- a/codex/SKILL.md +++ b/codex/SKILL.md @@ -130,6 +130,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/context-restore/SKILL.md b/context-restore/SKILL.md index 6ac1e7b49..bf69fac98 100644 --- a/context-restore/SKILL.md +++ b/context-restore/SKILL.md @@ -131,6 +131,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/context-save/SKILL.md b/context-save/SKILL.md index 9a38a4ef2..ab0e1789f 100644 --- a/context-save/SKILL.md +++ b/context-save/SKILL.md @@ -130,6 +130,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/cso/SKILL.md b/cso/SKILL.md index 780d43b4b..d3d462281 100644 --- a/cso/SKILL.md +++ b/cso/SKILL.md @@ -133,6 +133,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/design-consultation/SKILL.md b/design-consultation/SKILL.md index 504813db0..104170a0b 100644 --- a/design-consultation/SKILL.md +++ b/design-consultation/SKILL.md @@ -153,6 +153,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/design-html/SKILL.md b/design-html/SKILL.md index 9a18ba42d..2facd6829 100644 --- a/design-html/SKILL.md +++ b/design-html/SKILL.md @@ -134,6 +134,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/design-review/SKILL.md b/design-review/SKILL.md index 381d3bb2e..921bcd984 100644 --- a/design-review/SKILL.md +++ b/design-review/SKILL.md @@ -131,6 +131,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/design-shotgun/SKILL.md b/design-shotgun/SKILL.md index 27be9ca5b..a60931e7d 100644 --- a/design-shotgun/SKILL.md +++ b/design-shotgun/SKILL.md @@ -148,6 +148,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/devex-review/SKILL.md b/devex-review/SKILL.md index 07d1f241d..0b1a66eab 100644 --- a/devex-review/SKILL.md +++ b/devex-review/SKILL.md @@ -133,6 +133,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/document-generate/SKILL.md b/document-generate/SKILL.md index 5ba1b1d17..2d2323d96 100644 --- a/document-generate/SKILL.md +++ b/document-generate/SKILL.md @@ -133,6 +133,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/document-release/SKILL.md b/document-release/SKILL.md index 2c4d4a0c5..1ed8fb8f4 100644 --- a/document-release/SKILL.md +++ b/document-release/SKILL.md @@ -131,6 +131,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/health/SKILL.md b/health/SKILL.md index 28ec8c05b..f38a06c1f 100644 --- a/health/SKILL.md +++ b/health/SKILL.md @@ -129,6 +129,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/investigate/SKILL.md b/investigate/SKILL.md index 0fad70368..97e6e9041 100644 --- a/investigate/SKILL.md +++ b/investigate/SKILL.md @@ -168,6 +168,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/ios-clean/SKILL.md b/ios-clean/SKILL.md index fe47b9860..77e42598b 100644 --- a/ios-clean/SKILL.md +++ b/ios-clean/SKILL.md @@ -131,6 +131,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/ios-design-review/SKILL.md b/ios-design-review/SKILL.md index 5cc59c894..765de7446 100644 --- a/ios-design-review/SKILL.md +++ b/ios-design-review/SKILL.md @@ -133,6 +133,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/ios-fix/SKILL.md b/ios-fix/SKILL.md index f7d21373a..8dc37799a 100644 --- a/ios-fix/SKILL.md +++ b/ios-fix/SKILL.md @@ -134,6 +134,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/ios-qa/SKILL.md b/ios-qa/SKILL.md index 6fafbca22..ab5905394 100644 --- a/ios-qa/SKILL.md +++ b/ios-qa/SKILL.md @@ -137,6 +137,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/ios-sync/SKILL.md b/ios-sync/SKILL.md index aff7da972..89ff3ded2 100644 --- a/ios-sync/SKILL.md +++ b/ios-sync/SKILL.md @@ -131,6 +131,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/land-and-deploy/SKILL.md b/land-and-deploy/SKILL.md index cb60136e4..76c6429cd 100644 --- a/land-and-deploy/SKILL.md +++ b/land-and-deploy/SKILL.md @@ -126,6 +126,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/landing-report/SKILL.md b/landing-report/SKILL.md index 0a234bead..ce9a3fbab 100644 --- a/landing-report/SKILL.md +++ b/landing-report/SKILL.md @@ -128,6 +128,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/learn/SKILL.md b/learn/SKILL.md index e877a6da7..8df577a0a 100644 --- a/learn/SKILL.md +++ b/learn/SKILL.md @@ -129,6 +129,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/office-hours/SKILL.md b/office-hours/SKILL.md index 21562028d..aa03c0041 100644 --- a/office-hours/SKILL.md +++ b/office-hours/SKILL.md @@ -164,6 +164,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/pair-agent/SKILL.md b/pair-agent/SKILL.md index 986338e3b..32554f9c0 100644 --- a/pair-agent/SKILL.md +++ b/pair-agent/SKILL.md @@ -130,6 +130,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/plan-ceo-review/SKILL.md b/plan-ceo-review/SKILL.md index 0fa766747..62ea32227 100644 --- a/plan-ceo-review/SKILL.md +++ b/plan-ceo-review/SKILL.md @@ -156,6 +156,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/plan-design-review/SKILL.md b/plan-design-review/SKILL.md index 9bf3e09b4..abf15dc3f 100644 --- a/plan-design-review/SKILL.md +++ b/plan-design-review/SKILL.md @@ -129,6 +129,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/plan-devex-review/SKILL.md b/plan-devex-review/SKILL.md index 88a7aaf5d..351ffb7e4 100644 --- a/plan-devex-review/SKILL.md +++ b/plan-devex-review/SKILL.md @@ -134,6 +134,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/plan-eng-review/SKILL.md b/plan-eng-review/SKILL.md index cd462c565..0105f2f63 100644 --- a/plan-eng-review/SKILL.md +++ b/plan-eng-review/SKILL.md @@ -132,6 +132,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/plan-tune/SKILL.md b/plan-tune/SKILL.md index 68c1b07e2..3caf27e27 100644 --- a/plan-tune/SKILL.md +++ b/plan-tune/SKILL.md @@ -139,6 +139,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/qa-only/SKILL.md b/qa-only/SKILL.md index 5958aac20..33013c2e7 100644 --- a/qa-only/SKILL.md +++ b/qa-only/SKILL.md @@ -129,6 +129,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/qa/SKILL.md b/qa/SKILL.md index 30d923a92..e6ec00ec0 100644 --- a/qa/SKILL.md +++ b/qa/SKILL.md @@ -135,6 +135,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/retro/SKILL.md b/retro/SKILL.md index 828fc028e..434b142f5 100644 --- a/retro/SKILL.md +++ b/retro/SKILL.md @@ -149,6 +149,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. @@ -783,6 +785,32 @@ If the time window is 14 days or more, use the `WEEK:` lines (w0 = the week cont - If the anchor date is today or yesterday, the streak is live: "Team shipping streak: 47 consecutive days" / "Your shipping streak: 32 consecutive days" - If the anchor is older, the streak is broken: report 0 days and note the last shipping day. +### Step 11.5: Shortcut Debt Ledger + +Harvest deliberate `gstack-shortcut(...)` markers — the trail left when the user +accepted a Completeness ≤ 7 option (see the AskUserQuestion Format section). Zero +matches is the healthy case, not a failure: + +```bash +grep -rn "gstack-shortcut(" . \ + --exclude-dir=.git --exclude-dir=node_modules --exclude-dir=vendor \ + --exclude-dir=.claude --exclude-dir=dist \ + --exclude="SKILL.md" --exclude="*.md.tmpl" 2>/dev/null || true +``` + +(The exclusions keep docs that merely document the convention — generated +SKILL.md, templates, skill installs — out of the ledger.) + +For each hit, one ledger row: `:, . ceiling: . upgrade: .` +- Markers carry a decision id (`dec-`): join against `gstack-decision-search` + output — the ledger entry is the source of truth; never double-count a marker + against its resurfaced decision. +- Markers WITHOUT an id: tag `unlinked`. +- Markers naming no upgrade trigger: tag `no-trigger` — those are the ones that + silently rot. + +End the section with: `N markers, M with no trigger.` If none: `No shortcut debt. Clean ledger.` + ### Step 12: Load History & Compare Before saving the new snapshot, check for prior retro history: diff --git a/retro/SKILL.md.tmpl b/retro/SKILL.md.tmpl index 4bf3ebb34..9ce49df58 100644 --- a/retro/SKILL.md.tmpl +++ b/retro/SKILL.md.tmpl @@ -309,6 +309,32 @@ If the time window is 14 days or more, use the `WEEK:` lines (w0 = the week cont - If the anchor date is today or yesterday, the streak is live: "Team shipping streak: 47 consecutive days" / "Your shipping streak: 32 consecutive days" - If the anchor is older, the streak is broken: report 0 days and note the last shipping day. +### Step 11.5: Shortcut Debt Ledger + +Harvest deliberate `gstack-shortcut(...)` markers — the trail left when the user +accepted a Completeness ≤ 7 option (see the AskUserQuestion Format section). Zero +matches is the healthy case, not a failure: + +```bash +grep -rn "gstack-shortcut(" . \ + --exclude-dir=.git --exclude-dir=node_modules --exclude-dir=vendor \ + --exclude-dir=.claude --exclude-dir=dist \ + --exclude="SKILL.md" --exclude="*.md.tmpl" 2>/dev/null || true +``` + +(The exclusions keep docs that merely document the convention — generated +SKILL.md, templates, skill installs — out of the ledger.) + +For each hit, one ledger row: `:, . ceiling: . upgrade: .` +- Markers carry a decision id (`dec-`): join against `gstack-decision-search` + output — the ledger entry is the source of truth; never double-count a marker + against its resurfaced decision. +- Markers WITHOUT an id: tag `unlinked`. +- Markers naming no upgrade trigger: tag `no-trigger` — those are the ones that + silently rot. + +End the section with: `N markers, M with no trigger.` If none: `No shortcut debt. Clean ledger.` + ### Step 12: Load History & Compare Before saving the new snapshot, check for prior retro history: diff --git a/review/SKILL.md b/review/SKILL.md index c85ea5484..289fe9282 100644 --- a/review/SKILL.md +++ b/review/SKILL.md @@ -131,6 +131,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/review/checklist.md b/review/checklist.md index 27d7ba2e4..666c2cecd 100644 --- a/review/checklist.md +++ b/review/checklist.md @@ -180,3 +180,4 @@ the fix, it's ASK. - Eval threshold changes (max_actionable, min scores) — these are tuned empirically and change constantly - Harmless no-ops (e.g., `.reject` on an element that's never in the array) - ANYTHING already addressed in the diff you're reviewing — read the FULL diff before commenting +- A gap covered by a `gstack-shortcut(dec-*)` marker naming a ceiling and upgrade trigger — that is acknowledged debt with a ledger entry, not a Completeness Gaps finding diff --git a/scripts/resolvers/preamble/generate-ask-user-format.ts b/scripts/resolvers/preamble/generate-ask-user-format.ts index 937b9f323..f73db7f88 100644 --- a/scripts/resolvers/preamble/generate-ask-user-format.ts +++ b/scripts/resolvers/preamble/generate-ask-user-format.ts @@ -62,6 +62,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use \`Completeness: N/10\` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: \`Note: options differ in kind, not coverage — no completeness score.\` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via \`gstack-decision-log\` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with \`gstack-shortcut(dec-): , upgrade when \` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: \`✅ No cons — this is a hard-stop choice\`. Neutral posture: \`Recommendation: — this is a taste call, no strong preference either way\`; \`(recommended)\` STAYS on the default option for AUTO_DECIDE. diff --git a/setup-deploy/SKILL.md b/setup-deploy/SKILL.md index 7c479fd38..0c439bb9a 100644 --- a/setup-deploy/SKILL.md +++ b/setup-deploy/SKILL.md @@ -130,6 +130,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/setup-gbrain/SKILL.md b/setup-gbrain/SKILL.md index 4401cbb79..01f40aa1b 100644 --- a/setup-gbrain/SKILL.md +++ b/setup-gbrain/SKILL.md @@ -129,6 +129,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/ship/SKILL.md b/ship/SKILL.md index 82ff0f865..d1c783395 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -131,6 +131,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/skillify/SKILL.md b/skillify/SKILL.md index fb63b80f5..486aa13b2 100644 --- a/skillify/SKILL.md +++ b/skillify/SKILL.md @@ -128,6 +128,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/spec/SKILL.md b/spec/SKILL.md index d1a63fe48..4bdec6705 100644 --- a/spec/SKILL.md +++ b/spec/SKILL.md @@ -129,6 +129,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/sync-gbrain/SKILL.md b/sync-gbrain/SKILL.md index e14a8fba2..a97a9cf62 100644 --- a/sync-gbrain/SKILL.md +++ b/sync-gbrain/SKILL.md @@ -130,6 +130,8 @@ ELI10 is always present, in plain English, not function names. Recommendation is Completeness: use `Completeness: N/10` only when options differ in coverage. 10 = complete, 7 = happy path, 3 = shortcut. If options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` +Accepted shortcuts leave a trail: when the user selects an option that is BOTH Completeness ≤ 7 AND a durable-scope call (architecture or scope-cut — never a turn-level choice), log it via `gstack-decision-log` with the ceiling and the upgrade trigger in the rationale, and — as part of implementing that option, same edit, no follow-up question — mark each cut corner in code with `gstack-shortcut(dec-): , upgrade when ` in the language's comment syntax. Never agent-initiated: the marker exists only downstream of the user's explicit choice. /retro harvests these into a debt ledger, joined on the decision id. + Pros / cons: use ✅ and ❌. Minimum 2 pros and 1 con per option when the choice is real; Minimum 40 characters per bullet. Hard-stop escape for one-way/destructive confirmations: `✅ No cons — this is a hard-stop choice`. Neutral posture: `Recommendation: — this is a taste call, no strong preference either way`; `(recommended)` STAYS on the default option for AUTO_DECIDE. diff --git a/test/redact-engine.test.ts b/test/redact-engine.test.ts index 020171525..fe6a1f46a 100644 --- a/test/redact-engine.test.ts +++ b/test/redact-engine.test.ts @@ -380,6 +380,15 @@ describe("LOW patterns surface only", () => { ); expect(f?.tier).toBe("LOW"); }); + test("gstack-shortcut(dec-*) debt marker survives redaction untouched", () => { + // The shortcut ledger convention (AskUserQuestion Format / /retro Step 11.5) + // ships in commits and PR bodies BY DESIGN — the ledger is the point. It + // must not be caught by hygiene.todo's TODO(owner) shape or anything else. + const marker = + "// gstack-shortcut(dec-a1b2c3): global lock, upgrade when throughput matters"; + const result = scan(marker, { repoVisibility: "public" }); + expect(result.findings).toHaveLength(0); + }); }); describe("placeholder suppression (per-span)", () => {