Compress all decisions from CLARIFY into a minimal user interrupt set.
From stage-harnessnpx claudepluginhub luagam/stage-harnessThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Details PluginEval's skill quality evaluation: 3 layers (static, LLM judge), 10 dimensions, rubrics, formulas, anti-patterns, badges. Use to interpret scores, improve triggering, calibrate thresholds.
Compress all decisions from CLARIFY into a minimal user interrupt set.
The most disruptive part of AI-driven development is constant interruptions. This skill implements the Decision Bundle pattern: collect ALL pending decisions, classify them, and condense must_confirm items into a single structured packet — maximizing autonomy while preserving control on what matters.
Decisions where:
→ Pack into Decision Packet for single user interrupt
Decisions where:
→ Auto-proceed with proposed_default, log in bundle
Decisions where:
→ Add to unknowns-ledger.json, revisit at appropriate stage
1. Collect all decisions from:
- requirement-analyst findings
- impact-analyst blast radius flags
- challenger questions
- deep-dive-specialist memos
2. For each decision:
a. Assign category (must_confirm / assumable / deferrable)
b. Assign risk_if_wrong (low / medium / high / critical)
c. Write proposed_default and why_now
3. Count must_confirm items vs interrupt budget
4. If must_confirm count > budget:
a. Re-evaluate: can any be reclassified as assumable?
b. If not: bundle remaining into one packet (don't split across multiple interrupts)
5. Write decision-bundle.json (all decisions)
6. Write decision-packet.json (only must_confirm for user)
budget = interrupt_budget.json → remaining_interrupts
if must_confirm_count > budget:
→ Combine all into ONE well-structured interrupt
→ Never exceed budget by splitting across turns
if must_confirm_count == 0:
→ No interrupt needed; log "0 interrupts used" in budget
{
"epic": "epic-name",
"stage": "CLARIFY",
"created_at": "2024-01-15T10:00:00Z",
"summary": {
"must_confirm": 2,
"assumable": 8,
"deferrable": 3,
"interrupts_consumed": 1
},
"decisions": [
{
"id": "DEC-001",
"question": "Should the API use JWT or session cookies?",
"context": "New auth endpoint being added",
"risk_if_wrong": "high",
"category": "must_confirm",
"proposed_default": "JWT with 1h expiry",
"why_now": "Blocks SPEC security section",
"status": "pending | resolved | deferred",
"resolution": null
}
]
}
{
"epic": "epic-name",
"interrupt_number": 1,
"total_interrupts_in_budget": 2,
"questions": [
{
"id": "DEC-001",
"question": "Should the API use JWT or session cookies?",
"why_now": "Blocks SPEC security section — wrong choice requires full rewrite",
"options": ["JWT (recommended)", "Session cookies", "Both"],
"default_action": "JWT with 1h expiry",
"deadline": "before SPEC generation"
}
]
}
Invoke skill: decision-bundle
Epic: <epic-name>
Input: findings from requirement-analyst, impact-analyst, challenger
Output:
- .harness/features/<epic-id>/decision-bundle.json
- .harness/features/<epic-id>/decision-packet.json (if must_confirm > 0)