advise
Critical thinking analysis - validates alignment, challenges assumptions, identifies risks
Create GitHub issue with automated research (--quick for fast mode)
$ npx -y skills add akaszubski/autonomous-dev --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
/create-issueContext preview
What this command does when you run it.
Create GitHub issue with automated research (--quick for fast mode)
name: create-issue description: "Create GitHub issue with automated research (--quick for fast mode)" argument-hint: "Issue title [--quick] (e.g., 'Add JWT authentication' or 'Add JWT authentication --quick')" allowed-tools: [Task, Read, Bash, Grep, Glob] disable-model-invocation: false user-invocable: true user_facing: true
Automate GitHub issue creation with research-backed, well-structured content.
| Mode | Time | Description | |------|------|-------------| | **Default (thorough)** | 8-12 min | Full analysis, blocking duplicate check | | **--quick** | 30-60 sec | Inline scan + generation, 0 agents, no prompts |
**CRITICAL**: Follow these steps in order. Each checkpoint validates before proceeding.
ARGUMENTS: {{ARGUMENTS}}
---
The `{{ARGUMENTS}}` placeholder is replaced with user input at runtime.
**Parsing strategy**: 1. Scan for flags: `--quick`, `--thorough` (deprecated, now default) 2. Everything remaining after flags = feature request text 3. If no text provided, prompt user for feature description
**Examples**:
---
Parse the ARGUMENTS to detect mode flags:
--quick Fast mode (inline scan + generation, 0 agents, no prompts) --thorough (Deprecated - silently accepted, now default behavior)
**Default mode**: Thorough mode with full analysis, blocking duplicate check, all sections.
Extract the feature request (everything except flags).
**Create command context file immediately, in its OWN separate Bash tool call** (before any agents are spawned and before any `gh issue create` calls):
python3 -c "
import json; from datetime import datetime, timezone
with open('/tmp/autonomous_dev_cmd_context.json', 'w') as f:
json.dump({'command': 'create-issue', 'timestamp': datetime.now(timezone.utc).isoformat()}, f)
"This context file allows the `issue-creator` agent to run `gh issue create` later. It MUST be created here, before STEP 1, because agents spawned in STEP 1-2 may need it. The context file is cleaned up at CHECKPOINT 3 or on early exit.
**Prior-call ordering contract (Issue #1203)**: The PreToolUse hook evaluates each Bash invocation BEFORE it runs. The context-file write above MUST be a STANDALONE Bash tool call. **FORBIDDEN: Do NOT bundle the context write and `gh issue create` into one Bash tool call** — at hook evaluation time the context file would not yet exist on disk and the `gh issue create` call would be blocked. See #1203. The cleanup of the context file MAY ride the same call as the last `gh issue create` only when no further `gh issue create` calls follow in this command run.
---
**HARD GATE**: If `--quick` flag is set, execute the steps below inline. Do NOT proceed to STEP 1.
**Quick Step 1: Create context file** (already done in STEP 0 above)
**Quick Step 2: Inline duplicate scan**
Run via Bash tool (no agent):
gh issue list --state open --limit 50 --json number,title
Compare issue titles against the feature request by keyword overlap. Store any matches for display after creation (no blocking prompt).
**Quick Step 3: Generate issue body inline**
Generate a markdown body with EXACTLY these 4 sections (no more, no less):
1. **Summary**: 1-2 sentences describing the feature/fix 2. **Implementation Approach**: Brief technical plan 3. **Test Scenarios**: 3-5 test cases (happy path, error cases, edge cases) 4. **Acceptance Criteria**: Checkboxes for verifiable conditions 5. **Plugin Version**: Include the plugin version stamp: `$(python3 -c "import sys,os;next((sys.path.insert(0,p) for p in ('.claude/lib','plugins/autonomous-dev/lib',os.path.expanduser('~/.claude/lib')) if os.path.isdir(p)),None);from version_reader import get_plugin_version;print(get_plugin_version())" 2>/dev/null || echo unknown)`
Capture a collision-safe Unix timestamp (nanoseconds — unique even across concurrent runs):
RUN_TS=$(date +%s%N)
Temp files use the `RUN_TS=$(date +%s%N)` unique suffix for collision-safety across concurrent runs.
Write the body to a temp file (CWE-78 prevention — never inline body as shell argument):
cat > /tmp/create_issue_body_${RUN_TS}.md << 'ISSUE_EOF'
[generated body here]
ISSUE_EOF**Quick Step 4: Create the issue (chained cleanup — #1204)**
The trailing `rm` is chained onto the `gh issue create` call via `;` so the single Bash approval covers the cleanup AND the cleanup runs even on failure paths. The context-file WRITE above (in STEP 0) remains a separate prior call, preserving the #1203 contract.
gh issue create --title "TITLE" --body-file /tmp/create_issue_body_${RUN_TS}.md; rm -f /tmp/autonomous_dev_cmd_context.json /tmp/create_issue_body_${RUN_TS}.md**Quick Step 5: Display result**
Show the created issue URL. If the duplicate scan in Quick Step 2 found matching issues, display them as informational below the URL (no prompt, no blocking). Cleanup already happened as part of Quick Step 4.
**END** — Do not proceed to STEP 1 or any subsequent steps.
---
Launch TWO agents in parallel using the Task tool:
**Agent 1: researcher** (subagent_type="researcher")
**Agent 2: issue-scanner** (subagent_type="Explore", run_in_background=true)
A harness that wraps Claude Code with enforcement, specialist agents, and alignment gates to deliver consistent, production-grade software engineering outcomes.
Repo: akaszubski/autonomous-dev
Critical thinking analysis - validates alignment, challenges assumptions, identifies risks
Comprehensive quality audit - code quality, documentation, coverage, security
Autonomous experiment loop — hypothesize, modify, benchmark, commit or revert
Autonomous queue drainer — picks the top /triage cluster, applies safety gates, drains via /implement --issues, pushes, deploys.
Governance, Observability, Audit — autonomous infra-health observer for autonomous-dev itself. Subcommands: start | stop | status.