| name | discuss |
| description | Use when exploring a feature idea before committing, or revisiting a parked one. Triggers — "engineer plugin -> discuss skill", "engineer plugin -> discuss skill <slug>", "I have an idea about", "should we build", "let's think about". |
discuss
The upstream funnel of DAE — a divergent brainstorm (forked from superpowers:brainstorming) that ends in one of three outcomes: drop, park, or promote. Most ideas die here; some park as features/NNN-slug/ with status: parked; survivors promote to status: ready.
When to use
- Fresh —
engineer plugin -> discuss skill, no argument. New exploration.
- Continue —
engineer plugin -> discuss skill <slug>. Resume a parked feature.
Not for: feature-work prep on an already-Ready feature (prime-context), or editing a committed feature (feature-edit).
Workflow
- Resolve + load — resolve the methodology root + manifest via
${PLUGIN_ROOT}/scripts/dae_resolve.py (see references/resolving.md). Load CHARTER.md and the last ~20 lines of .engineer/discussions.log. With a slug arg: also load that feature's feature.md + prior handoffs/*-discuss.md; reject if its status is ready/in-progress (→ feature-edit) or done.
- Open — fresh: "What are you thinking about?" After the first prompt, soft-match the topic against parked feature titles/areas; if a likely match, offer once to continue it. Continue mode: echo prior state in one line, then resume.
- Brainstorm (divergent) — explore intent, scope, alternatives; one question per turn. Surface charter signals (e.g. payment paths cap autonomy), ADR connections, and "too big — decompose?" flags as they arise.
- Surface the outcome — at a natural inflection, recommend an outcome (promote / park / drop); the user confirms. Never auto-execute. If the user says "drop" but there's a concrete reason it's worth parking, ask once.
- Execute the outcome:
- Drop — append one line to
.engineer/discussions.log: <ISO-timestamp> | <slug> | dropped | <one-line why>. Draft the "why" from context; user confirms/edits.
- Park — invoke
feature-init with feature_intake { status: parked, autonomy_level: null, ... }.
- Promote — first resolve
autonomy_level (low/medium/high, charter caps surfaced); if the user can't decide, fall back to park. Then invoke feature-init with status: ready.
- Handoff — for park/promote, write a
<timestamp>-discuss.md handoff into the new feature folder. For drop, the log line is the record — no handoff.
Continuing a parked feature: each session appends a new discuss handoff; feature.md is refined in place. Promoting a continued feature flips status to ready directly — feature-init is not re-invoked.
Handoff
For park/promote, emit per ${PLUGIN_ROOT}/references/handoff-summary.md. checkpoint: null. Drop emits no handoff.
References