<< All versions

Skill v1.0.0

currentAutomated scan100/100
swingerman/engineer/discuss
──Details
PublishedOctober 26, 2026 at 05:13 AM
Content Hashsha256:705dd1a227931f6a...
Git SHA23be25afcf6d
──Files
Files (1 file, 5.8 KB)
SKILL.md5.8 KBactive
SKILL.md · 47 lines · 5.8 KB

version: "1.0.0" name: discuss description: Use when exploring a feature idea before committing, or revisiting a parked one. Triggers — "/engineer.discuss", "/engineer.discuss <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.discuss, no argument. New exploration.
  • Continue — /engineer.discuss <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

  1. Resolve + load — resolve the methodology root + manifest via ${CLAUDE_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.
  2. Open — if handed an `intent.md` (an originator-authored intent, see ${CLAUDE_PLUGIN_ROOT}/references/intent.md), read it as the opening context instead of a cold prompt, reflect the synthesis back, and continue from there — the async front door for originators who don't want an interactive session. Otherwise, fresh: "What are you thinking about?" After the first prompt, soft-match the topic against parked feature titles/areas and against roadmap items (driver per references/roadmap.md; local = ${CLAUDE_PLUGIN_ROOT}/scripts/dae_roadmap.py list); if it matches a planned roadmap item, say so and offer to promote that item (carry its id as roadmap_ref) rather than starting a disconnected idea. Continue mode: echo prior state in one line, then resume.
  3. 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.
  4. Surface the outcome — at a natural inflection, recommend an outcome (build / 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. Present it as a choice point (${CLAUDE_PLUGIN_ROOT}/references/choice-points.md): recommend one option marked "(Recommended)" with a one-line rationale, alternatives listed, autonomy_level-dialed default — not an open question. When the outcome is build, the recommendation carries the two funnel decisions, both projected from the conversation (size + clarity, per choice-points.md):
  • A — front half: shape known → spec-first; fuzzy / UX-heavy / "I'll know it when I see it" → prototype-first (${CLAUDE_PLUGIN_ROOT}/references/two-paths.md) — iterate a rough artifact, convert to spec later.
  • B — weight: projected ~1-PR / low-risk → express (XS) (${CLAUDE_PLUGIN_ROOT}/references/express-lane.md, one pass); non-trivial → full DAE. Charter-flagged path is never recommended express (safety wins). Prototype-first defers B to convergence (its prototype_disposition).

Carry the projected size into the promote/prototype handoff so feature-init need not re-ask.

  1. 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.
  • Prototype — the idea is better built than specced: hand to the prototype skill (/engineer.prototype "<idea>") instead of feature-init. It iterates fast, then converts to spec (promote) into the pipeline later — the prototype-first entry (${CLAUDE_PLUGIN_ROOT}/references/two-paths.md). Do not create a feature here; prototype's promote does that on convergence.
  • 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. If the idea came from a roadmap item, pass its roadmap_ref so feature-init back-links and marks it in-progress (see references/roadmap.md).
  • Keep the roadmap alive — when an idea is too big and decomposes into several future features, or you park something strategically worth tracking at the feature-list altitude, offer once to add it as a roadmap item (driver upsert, status: planned, a horizon) so the strategic layer stays current beyond onboard-time. The user's call — never auto-add. Skip silently if manifest.roadmap.type is none/unreachable.
  1. 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 ${CLAUDE_PLUGIN_ROOT}/references/handoff-summary.md. checkpoint: null. Drop emits no handoff.

References

  • Discuss & Upstream Funnel — funnel, drop-log format, park/promote paths
  • Foundation Design — feature.md schema, autonomy levels
  • references/roadmap.md — the roadmap ↔ feature funnel (promote from / keep alive)
  • Sister skill: feature-init (invoked for park/promote).
All versions