diff --git a/.agents/skills/start/SKILL.md b/.agents/skills/start/SKILL.md index 92be2cc..44a5230 100644 --- a/.agents/skills/start/SKILL.md +++ b/.agents/skills/start/SKILL.md @@ -76,15 +76,20 @@ Read the relevant code. Propose a concrete implementation approach. Be specific ### Step 2 — HUMAN GATE -Say exactly: **"Does this approach sound right? I'll create a GitHub issue and branch before writing any code."** +Say exactly: -Stop. Wait for the user to confirm. +> **"Does this approach sound right? Type `go` to create a GitHub issue and branch, or share any questions/adjustments first."** + +Stop. Wait for the user to respond. The friendly text question is required regardless of harness mode. If your harness is currently in a preview / plan / dry-run mode where you cannot passively stop and wait (and must instead invoke the harness's own approval mechanism), still include the text question in your response. The harness's approval UI mediates the wait, but it is not a substitute for the question itself. Users expect to see the consistent text language across all modes; do not silently swap it for the harness's UI. -- User says yes → continue to Step 3. -- User redirects → revise approach, ask again. -- User abandons → stop. Nothing to clean up. +**Intent classification (not keyword matching):** + +- **Affirmative with no conditions** ("go", "yes", "looks good", "let's do it") → continue to Step 3. +- **Affirmative with conditions** ("go, but first change X", "yes but can we also...") → treat as discussion. Address the conditions, revise the approach if needed, then re-ask. +- **Questions or pushback** ("what about...", "I'm not sure about...", any adjustment) → discuss, revise approach, re-ask. +- **Abandonment** ("never mind", "not now", "stop") → stop. Nothing to clean up. ### Step 3 — Create GitHub Issue @@ -203,10 +208,15 @@ Tell the user: - What was previously done (from agent notes if present) - What appears to remain -Ask: **"Does this match your understanding? Continue this ticket, or open a fresh one?"** +Ask: **"Does this match your understanding? Type `go` to start coding, or share any questions/adjustments first."** + +**Intent classification (not keyword matching):** -- Continue → Step 3. -- New ticket → restart as Case A with a new description. +- **Affirmative with no conditions** ("go", "yes", "continue", "looks right") → proceed to Step 3. +- **Affirmative with conditions** ("go, but first...", "yes but let's also...") → treat as discussion. Address the conditions, then re-ask. +- **Questions or discussion** ("what about...", "can we change...", any adjustment) → discuss, then re-ask. +- **Fresh start** ("open a new one", "start fresh", "new ticket") → restart as Case A with a new description. +- **Abandonment** ("never mind", "not now", "stop") → stop. Nothing to clean up. ### Step 3 — Check out branch @@ -254,4 +264,4 @@ When done, say: **"The code is ready for review. Please run `make dev` and test - The issue is assigned to `@me` at creation. If you are creating a ticket on someone else's behalf, remove the assignee after creation with `gh issue edit --remove-assignee @me`. - Apply resolved labels and milestone to every new issue. Label resolution order: per-invocation flag → pool selection from `bug, documentation, enhancement, chore` → omit `--label` entirely. Never apply a label outside `bug, documentation, enhancement, chore`. - Milestone resolution order: per-invocation flag → auto-detected from GitHub open milestones. Never prompt for a milestone more than once per invocation. - + diff --git a/.claude/commands/start.md b/.claude/commands/start.md index 2bd19c1..6ad8207 100644 --- a/.claude/commands/start.md +++ b/.claude/commands/start.md @@ -71,15 +71,20 @@ Read the relevant code. Propose a concrete implementation approach. Be specific ### Step 2 — HUMAN GATE -Say exactly: **"Does this approach sound right? I'll create a GitHub issue and branch before writing any code."** +Say exactly: -Stop. Wait for the user to confirm. +> **"Does this approach sound right? Type `go` to create a GitHub issue and branch, or share any questions/adjustments first."** + +Stop. Wait for the user to respond. The friendly text question is required regardless of harness mode. If your harness is currently in a preview / plan / dry-run mode where you cannot passively stop and wait (and must instead invoke the harness's own approval mechanism), still include the text question in your response. The harness's approval UI mediates the wait, but it is not a substitute for the question itself. Users expect to see the consistent text language across all modes; do not silently swap it for the harness's UI. -- User says yes → continue to Step 3. -- User redirects → revise approach, ask again. -- User abandons → stop. Nothing to clean up. +**Intent classification (not keyword matching):** + +- **Affirmative with no conditions** ("go", "yes", "looks good", "let's do it") → continue to Step 3. +- **Affirmative with conditions** ("go, but first change X", "yes but can we also...") → treat as discussion. Address the conditions, revise the approach if needed, then re-ask. +- **Questions or pushback** ("what about...", "I'm not sure about...", any adjustment) → discuss, revise approach, re-ask. +- **Abandonment** ("never mind", "not now", "stop") → stop. Nothing to clean up. ### Step 3 — Create GitHub Issue @@ -198,10 +203,15 @@ Tell the user: - What was previously done (from agent notes if present) - What appears to remain -Ask: **"Does this match your understanding? Continue this ticket, or open a fresh one?"** +Ask: **"Does this match your understanding? Type `go` to start coding, or share any questions/adjustments first."** + +**Intent classification (not keyword matching):** -- Continue → Step 3. -- New ticket → restart as Case A with a new description. +- **Affirmative with no conditions** ("go", "yes", "continue", "looks right") → proceed to Step 3. +- **Affirmative with conditions** ("go, but first...", "yes but let's also...") → treat as discussion. Address the conditions, then re-ask. +- **Questions or discussion** ("what about...", "can we change...", any adjustment) → discuss, then re-ask. +- **Fresh start** ("open a new one", "start fresh", "new ticket") → restart as Case A with a new description. +- **Abandonment** ("never mind", "not now", "stop") → stop. Nothing to clean up. ### Step 3 — Check out branch @@ -249,4 +259,4 @@ When done, say: **"The code is ready for review. Please run `make dev` and test - The issue is assigned to `@me` at creation. If you are creating a ticket on someone else's behalf, remove the assignee after creation with `gh issue edit --remove-assignee @me`. - Apply resolved labels and milestone to every new issue. Label resolution order: per-invocation flag → pool selection from `bug, documentation, enhancement, chore` → omit `--label` entirely. Never apply a label outside `bug, documentation, enhancement, chore`. - Milestone resolution order: per-invocation flag → auto-detected from GitHub open milestones. Never prompt for a milestone more than once per invocation. - + diff --git a/.cursor/rules/start.mdc b/.cursor/rules/start.mdc index 54ca08c..50a2546 100644 --- a/.cursor/rules/start.mdc +++ b/.cursor/rules/start.mdc @@ -77,15 +77,20 @@ Read the relevant code. Propose a concrete implementation approach. Be specific ### Step 2 — HUMAN GATE -Say exactly: **"Does this approach sound right? I'll create a GitHub issue and branch before writing any code."** +Say exactly: -Stop. Wait for the user to confirm. +> **"Does this approach sound right? Type `go` to create a GitHub issue and branch, or share any questions/adjustments first."** + +Stop. Wait for the user to respond. The friendly text question is required regardless of harness mode. If your harness is currently in a preview / plan / dry-run mode where you cannot passively stop and wait (and must instead invoke the harness's own approval mechanism), still include the text question in your response. The harness's approval UI mediates the wait, but it is not a substitute for the question itself. Users expect to see the consistent text language across all modes; do not silently swap it for the harness's UI. -- User says yes → continue to Step 3. -- User redirects → revise approach, ask again. -- User abandons → stop. Nothing to clean up. +**Intent classification (not keyword matching):** + +- **Affirmative with no conditions** ("go", "yes", "looks good", "let's do it") → continue to Step 3. +- **Affirmative with conditions** ("go, but first change X", "yes but can we also...") → treat as discussion. Address the conditions, revise the approach if needed, then re-ask. +- **Questions or pushback** ("what about...", "I'm not sure about...", any adjustment) → discuss, revise approach, re-ask. +- **Abandonment** ("never mind", "not now", "stop") → stop. Nothing to clean up. ### Step 3 — Create GitHub Issue @@ -204,10 +209,15 @@ Tell the user: - What was previously done (from agent notes if present) - What appears to remain -Ask: **"Does this match your understanding? Continue this ticket, or open a fresh one?"** +Ask: **"Does this match your understanding? Type `go` to start coding, or share any questions/adjustments first."** + +**Intent classification (not keyword matching):** -- Continue → Step 3. -- New ticket → restart as Case A with a new description. +- **Affirmative with no conditions** ("go", "yes", "continue", "looks right") → proceed to Step 3. +- **Affirmative with conditions** ("go, but first...", "yes but let's also...") → treat as discussion. Address the conditions, then re-ask. +- **Questions or discussion** ("what about...", "can we change...", any adjustment) → discuss, then re-ask. +- **Fresh start** ("open a new one", "start fresh", "new ticket") → restart as Case A with a new description. +- **Abandonment** ("never mind", "not now", "stop") → stop. Nothing to clean up. ### Step 3 — Check out branch @@ -255,4 +265,4 @@ When done, say: **"The code is ready for review. Please run `make dev` and test - The issue is assigned to `@me` at creation. If you are creating a ticket on someone else's behalf, remove the assignee after creation with `gh issue edit --remove-assignee @me`. - Apply resolved labels and milestone to every new issue. Label resolution order: per-invocation flag → pool selection from `bug, documentation, enhancement, chore` → omit `--label` entirely. Never apply a label outside `bug, documentation, enhancement, chore`. - Milestone resolution order: per-invocation flag → auto-detected from GitHub open milestones. Never prompt for a milestone more than once per invocation. - + diff --git a/.gemini/skills/start/SKILL.md b/.gemini/skills/start/SKILL.md index 28593a4..f5121dd 100644 --- a/.gemini/skills/start/SKILL.md +++ b/.gemini/skills/start/SKILL.md @@ -76,15 +76,20 @@ Read the relevant code. Propose a concrete implementation approach. Be specific ### Step 2 — HUMAN GATE -Say exactly: **"Does this approach sound right? I'll create a GitHub issue and branch before writing any code."** +Say exactly: -Stop. Wait for the user to confirm. +> **"Does this approach sound right? Type `go` to create a GitHub issue and branch, or share any questions/adjustments first."** + +Stop. Wait for the user to respond. The friendly text question is required regardless of harness mode. If your harness is currently in a preview / plan / dry-run mode where you cannot passively stop and wait (and must instead invoke the harness's own approval mechanism), still include the text question in your response. The harness's approval UI mediates the wait, but it is not a substitute for the question itself. Users expect to see the consistent text language across all modes; do not silently swap it for the harness's UI. -- User says yes → continue to Step 3. -- User redirects → revise approach, ask again. -- User abandons → stop. Nothing to clean up. +**Intent classification (not keyword matching):** + +- **Affirmative with no conditions** ("go", "yes", "looks good", "let's do it") → continue to Step 3. +- **Affirmative with conditions** ("go, but first change X", "yes but can we also...") → treat as discussion. Address the conditions, revise the approach if needed, then re-ask. +- **Questions or pushback** ("what about...", "I'm not sure about...", any adjustment) → discuss, revise approach, re-ask. +- **Abandonment** ("never mind", "not now", "stop") → stop. Nothing to clean up. ### Step 3 — Create GitHub Issue @@ -203,10 +208,15 @@ Tell the user: - What was previously done (from agent notes if present) - What appears to remain -Ask: **"Does this match your understanding? Continue this ticket, or open a fresh one?"** +Ask: **"Does this match your understanding? Type `go` to start coding, or share any questions/adjustments first."** + +**Intent classification (not keyword matching):** -- Continue → Step 3. -- New ticket → restart as Case A with a new description. +- **Affirmative with no conditions** ("go", "yes", "continue", "looks right") → proceed to Step 3. +- **Affirmative with conditions** ("go, but first...", "yes but let's also...") → treat as discussion. Address the conditions, then re-ask. +- **Questions or discussion** ("what about...", "can we change...", any adjustment) → discuss, then re-ask. +- **Fresh start** ("open a new one", "start fresh", "new ticket") → restart as Case A with a new description. +- **Abandonment** ("never mind", "not now", "stop") → stop. Nothing to clean up. ### Step 3 — Check out branch @@ -254,4 +264,4 @@ When done, say: **"The code is ready for review. Please run `make dev` and test - The issue is assigned to `@me` at creation. If you are creating a ticket on someone else's behalf, remove the assignee after creation with `gh issue edit --remove-assignee @me`. - Apply resolved labels and milestone to every new issue. Label resolution order: per-invocation flag → pool selection from `bug, documentation, enhancement, chore` → omit `--label` entirely. Never apply a label outside `bug, documentation, enhancement, chore`. - Milestone resolution order: per-invocation flag → auto-detected from GitHub open milestones. Never prompt for a milestone more than once per invocation. - + diff --git a/skills/start.md b/skills/start.md index 19d448f..421c404 100644 --- a/skills/start.md +++ b/skills/start.md @@ -119,15 +119,20 @@ Read the relevant code. Propose a concrete implementation approach. Be specific ### Step 2 — HUMAN GATE -Say exactly: **"Does this approach sound right? I'll create a GitHub issue and branch before writing any code."** +Say exactly: -Stop. Wait for the user to confirm. +> **"Does this approach sound right? Type `go` to create a GitHub issue and branch, or share any questions/adjustments first."** + +Stop. Wait for the user to respond. The friendly text question is required regardless of harness mode. If your harness is currently in a preview / plan / dry-run mode where you cannot passively stop and wait (and must instead invoke the harness's own approval mechanism), still include the text question in your response. The harness's approval UI mediates the wait, but it is not a substitute for the question itself. Users expect to see the consistent text language across all modes; do not silently swap it for the harness's UI. -- User says yes → continue to Step 3. -- User redirects → revise approach, ask again. -- User abandons → stop. Nothing to clean up. +**Intent classification (not keyword matching):** + +- **Affirmative with no conditions** ("go", "yes", "looks good", "let's do it") → continue to Step 3. +- **Affirmative with conditions** ("go, but first change X", "yes but can we also...") → treat as discussion. Address the conditions, revise the approach if needed, then re-ask. +- **Questions or pushback** ("what about...", "I'm not sure about...", any adjustment) → discuss, revise approach, re-ask. +- **Abandonment** ("never mind", "not now", "stop") → stop. Nothing to clean up. ### Step 3 — Create GitHub Issue @@ -262,10 +267,15 @@ Tell the user: - What was previously done (from agent notes if present) - What appears to remain -Ask: **"Does this match your understanding? Continue this ticket, or open a fresh one?"** +Ask: **"Does this match your understanding? Type `go` to start coding, or share any questions/adjustments first."** + +**Intent classification (not keyword matching):** -- Continue → Step 3. -- New ticket → restart as Case A with a new description. +- **Affirmative with no conditions** ("go", "yes", "continue", "looks right") → proceed to Step 3. +- **Affirmative with conditions** ("go, but first...", "yes but let's also...") → treat as discussion. Address the conditions, then re-ask. +- **Questions or discussion** ("what about...", "can we change...", any adjustment) → discuss, then re-ask. +- **Fresh start** ("open a new one", "start fresh", "new ticket") → restart as Case A with a new description. +- **Abandonment** ("never mind", "not now", "stop") → stop. Nothing to clean up. ### Step 3 — Check out branch