Research-grounded SDLC issue planner — dispatches parallel research, generates the supporting doc corpus, then files prioritized cross-referenced issues for human review.
requires
[{"objective":"non-empty string describing the feature, capability, or initiative to plan"},{"tracker":"issue tracker accessible (gitea | github | local) — auto-detected from project config"}]
ensures
[{"issues-filed":"prioritized issue backlog with type/priority/phase labels and wave-ordered dependencies"},{"research-brief":"synthesized research findings at .aiwg/working/issue-planner/research-brief.md"},{"sdlc-corpus":"phase-appropriate SDLC artifacts (use cases, risk register, etc.)"},"if --dry-run: plan preview table shown without filing","if --induct-research: reference induction tasks filed for discovered sources"]
errors
[{"no-tracker-access":"cannot reach issue tracker; check --provider or API credentials"},{"research-failed":"all three parallel research agents returned empty results; try --skip-research with existing docs"},{"objective-too-vague":"objective is too broad to plan without clarification; use --interactive"}]
invariants
["human approval gate is mandatory before any issues are filed","no issues are filed unless user explicitly confirms the plan","every filed issue links to the SDLC artifact that generated it"]
Transform a high-level objective into a fully researched, SDLC-gated issue backlog — ready for address-issues — without a human having to manually research, write docs, or decide priority order.
Triggers
Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):
"plan out " → full research + issue filing workflow
"file issues for " → issue-planner with dry-run preview first
"create a backlog for " → issue-planner with priority ordering
"research and plan " → parallel research pass then issue filing
"use the research team to plan " → explicit parallel research dispatch
"plan issues for using SDLC gates" → gate-checked issue generation
"I need issues for " → issue-planner in interactive mode to confirm scope
Parameters
<objective> (required)
The feature, capability, integration, or initiative to plan. Can be a one-liner or a multi-paragraph brief.
--interactive (optional)
Ask discovery questions before researching. Surfaces: scope constraints, excluded technologies, existing artifacts, target phase, priority bias (bugs-first vs value-first).
--dry-run (optional)
Generate the full plan and issue list but do not file any issues. Outputs a preview table for human review.
--guidance "text" (optional)
Upfront direction that shapes research focus, prioritization, and scope without interactive prompts.
Examples:
--guidance "We're in Construction phase, skip Inception artifacts"
--guidance "Security is top priority, HIPAA compliance required"
--guidance "Quick wins only — scope to 2-week sprint"
--provider (optional)
Override the default issue tracker (gitea | github | local). Defaults to project config in .aiwg/config.yaml or CLAUDE.md.
--skip-research (optional)
Skip the parallel research pass and go straight to SDLC doc generation. Use when research was already done externally.
--phase (optional)
Target SDLC phase for artifact generation (inception | elaboration | | ). Determines which templates are used and which gate criteria are checked.
construction
transition
--induct-research <target> (optional)
After research synthesis, extract all discovered references and file tracking tasks to induct them into a research repository. Can also be set via AIWG_RESEARCH_REPO environment variable.
Target formats:
Format
Example
Behavior
File path
--induct-research .aiwg/research/queue/
Creates one Markdown task file per reference in the specified directory
Infers the system from the URL (Gitea, GitHub, Jira, etc.) and files issues via the appropriate API or MCP tool
Named MCP service
--induct-research gitea
Uses the named MCP service directly (e.g. mcp__gitea__issue_write)
Named MCP service
--induct-research codehound
Uses Hound MCP to register references in the Hound search index
Env var fallback: If AIWG_RESEARCH_REPO is set, --induct-research is implied with the env var value as the target. Explicit flag overrides the env var.
What gets inducted: Every external URL, paper, RFC, repo, or specification surfaced during Phase 1 research — one tracking task per reference.
Induction task body template:
## Reference Induction**Source**: <URLorfilepath>**Surfaced by**: issue-planner research phase for "<objective>"
**Research stream**: <best-practices | current-state | vendor-docs>## Relevance Summary<Oneparagraphfromtheresearchagentexplainingwhythisreferencematters>## Suggested Priority<high | medium | low> — <rationale>## Induction Checklist- [ ] Read and annotate full source
- [ ] Extract key insights as Zettelkasten notes
- [ ] Cross-reference with existing corpus
- [ ] Tag with topic taxonomy
- [ ] Mark inducted in research queue
## Links- Objective: <top-levelplanningobjectivethiswassurfacedfor>- Research file: @.aiwg/working/issue-planner/research-<stream>.md
Execution Flow
Phase 0: Intake
Parse <objective> from the user's message.
If --interactive: ask discovery questions (see Interactive Mode below).
If --guidance: incorporate upfront direction throughout all phases.
Confirm understanding before launching:
Understood. Planning: <paraphrased objective>
Research pass: 3 parallel agents (best practices, current research, vendor docs)
Artifacts: requirements, architecture sketch, risk register, test strategy
Provider: gitea (roctinam/aiwg)
Mode: [dry-run | live filing]
Starting research...
Phase 1: Parallel Research (3 agents, single message)
Dispatch three focused research agents simultaneously. Each writes its output to .aiwg/working/issue-planner/:
Agent A — Best Practices
Objective: <objective>
Task: Research industry best practices, design patterns, and architectural guidance relevant to this objective.
Output: .aiwg/working/issue-planner/research-best-practices.md
Include: patterns, anti-patterns, recommended approaches, key trade-offs
Agent B — Current Research & Prior Art
Objective: <objective>
Task: Survey recent research, conference talks, open-source implementations, and community knowledge relevant to this objective.
Output: .aiwg/working/issue-planner/research-current-state.md
Include: recent developments (≤2 years), noteworthy implementations, emerging standards
Agent C — Vendor Documentation
Objective: <objective>
Task: Review official vendor documentation, API references, and integration guides for all relevant tools and platforms.
Output: .aiwg/working/issue-planner/research-vendor-docs.md
Include: official capabilities, known limitations, version requirements, migration notes
Progress indicator during research:
⏳ Research pass (3 parallel agents)...
⏳ A: Best practices...
⏳ B: Current research...
⏳ C: Vendor docs...
Phase 2: Research Synthesis
Read all three research outputs and synthesize a consolidated brief:
✓ A: Best practices complete
✓ B: Current research complete
✓ C: Vendor docs complete
⏳ Synthesizing research...
If --dry-run is set, list the references that would be inducted without filing.
Phase 3: SDLC Doc Corpus Generation
Using the research synthesis and SDLC gate requirements, generate the artifact set appropriate for the target phase. Each artifact cross-references the research documents.
Standard artifact set (Elaboration-level):
Artifact
Path
Template Source
Use Cases / User Stories
.aiwg/requirements/UC-<slug>-*.md
sdlc-complete/templates/requirements/
Architecture Sketch
.aiwg/architecture/sketch-<slug>.md
sdlc-complete/templates/analysis-design/
Risk Register
.aiwg/risks/risks-<slug>.md
sdlc-complete/templates/risk/
Test Strategy
.aiwg/testing/test-strategy-<slug>.md
sdlc-complete/templates/testing/
Security Screening
.aiwg/security/screening-<slug>.md
sdlc-complete/templates/security/
Generate a lighter set for Inception, heavier for Construction (add ADRs, detailed test plans, CI/CD hooks).
After generation, run the SDLC gate check to confirm completeness:
✓ Use cases generated (N stories)
✓ Architecture sketch complete
✓ Risk register populated (N risks)
✓ Test strategy drafted
✓ Security screening done
⏳ Running gate check...
✓ Gate check: corpus complete for <phase> phase
If gate check fails, remediate before proceeding to issue generation.
Phase 4: Issue Generation
Translate the artifact corpus and research synthesis into a structured issue backlog.
User: "Plan issues for adding HIPAA compliance to the auth module. Use the research team. Focus on security and compliance items first. We're in construction phase already."
Extracted: --guidance "HIPAA compliance, auth module, construction phase, security-first priority"
Flow: Research → security-first issue ordering → HIPAA-specific labels applied → gate-checked against construction criteria
Example 3: Dry Run Review
User: "Use the research team and SDLC process to plan out WebSocket support. Show me the issues but don't file them yet."
Extracted: --dry-run
Output: Full plan table with [DRY RUN — issues not filed] header. User can revise before committing.
Example 4: Quick Backlog
User: "File issues for using the aiwg research team in parallel... SDLC gates... await review."
This is the canonical trigger pattern. issue-planner recognizes it and executes the full workflow.
Example 5: Research Induction — Named MCP Service
User: "Plan out distributed tracing support. Induct any research you find into our Gitea research repo."
Extracted: --induct-research gitea
Flow:
Research pass discovers: OpenTelemetry spec, Jaeger docs, Zipkin paper, "Dapper" Google paper, 3 GitHub repos
Phase 2b files 7 induction tasks to the configured Gitea research repo (mcp__gitea__issue_write)
Each task includes source URL, relevance summary, and induction checklist
#301 [induct] OpenTelemetry Specification v1.35
Surfaced during: distributed tracing support planning
Stream: vendor-docs
Priority: high — this is the canonical standard we'll implement
Example 6: Research Induction — File Path
User: "Plan WebAuthn support. Save any references you find to .aiwg/research/queue/"
Flow: Research discovers 9 references. Phase 2b writes .md task files to .aiwg/research/queue/ — one per reference — formatted with the induction body template. These can later be processed with /induct-research .aiwg/research/queue/.
Example 7: Research Induction — Environment Variable
User: "Plan OAuth2 refresh token rotation using the research team."
Flow: AIWG_RESEARCH_REPO is set; induction is implied. URI is a Gitea instance — issues filed via mcp__gitea__issue_write to that repo. No explicit flag needed.
Composition
issue-planner <objective>
│
├── Phase 0: Intake + optional interactive discovery
├── Phase 1: Parallel research (3 agents simultaneously)
│ ├── Agent A: Best practices
│ ├── Agent B: Current research / prior art
│ └── Agent C: Vendor documentation
├── Phase 2: Research synthesis
├── Phase 2b: Research induction queue (if --induct-research)
│ ├── Collect + deduplicate references from all 3 streams
│ ├── Resolve target (file path | URI | named MCP service)
│ └── File one induction task per reference → /induct-research
├── Phase 3: SDLC doc corpus generation
│ └── /flow-gate-check <phase> (completeness gate)
├── Phase 4: Issue generation (taxonomy + priority + dependency waves)
├── Phase 5: Plan preview → HUMAN APPROVAL GATE
└── Phase 6: Issue filing + address-issues handoff instructions
References
@$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/skills/address-issues/SKILL.md — Consume the filed issues
@$AIWG_ROOT/agentic/code/frameworks/research-complete/skills/induct-research/SKILL.md — Research induction target skill
@$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/skills/issue-create/SKILL.md — Single issue creation
@$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/skills/issue-driven-al/SKILL.md — Agent loop per issue