create-release
SkillDev toolsCreate New Release
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the create-release skill
What this skill tells your AI
The instructions your AI receives, as published by markmhendrickson/neotoma in .claude/skills/create-release/SKILL.md and read by ahel’s review.
name: create-release description: Create a new software release with planning, manifest, and execution schedule. triggers:
- new release
- create release
- plan release
- create-release
- /create-release
Create New Release
Orchestrates multiple Feature Units into a cohesive release. Implements the Release workflow from foundation/development/release_workflow.md.
When to Use
Explicit Command: Use when you know exactly what you want: start a new release, plan multi-FU work with dependency resolution, generate execution schedules with parallelization, orchestrate FU creation/execution in dependency order, run cross-FU integration tests.
Automatic Detection: This workflow can also be triggered automatically via .claude/rules/release_detection.md when you mention release-related patterns in natural language (e.g., "new release", "release v1.1.0"). Both paths execute the same workflow.
This is a foundation command. If installed, it will be available in .claude/skills/ via symlink.
Prerequisites
- Release ID chosen (format:
vX.Y.Z, e.g.,v1.0.0) - Release scope roughly defined (what's in, what's out)
- FU IDs for included work identified (or to be created)
Command Execution
Step 1: Load Documentation
Load required documents:
foundation/development/release_workflow.md(primary workflow)docs/feature_units/standards/creating_feature_units.md(FU creation)docs/feature_units/standards/execution_instructions.md(FU execution)docs/feature_units/completed/anddocs/feature_units/in_progress/(for Feature Unit specs)
Step 2: Checkpoint 0 — Release Planning
Check if Release plan exists:
- Look for
docs/releases/in_progress/{release_id}/release_plan.md - Look for
docs/releases/in_progress/{release_id}/manifest.yaml
If Release plan exists: Load and validate. If complete → proceed to Step 3. If incomplete → prompt user to complete.
If Release plan does NOT exist: Prompt user interactively for Release details:
- Release name and version (e.g., "MVP", "v1.0.0")
- Release goal (1-2 sentence summary of what this ships)
- Target ship date (date or "when ready")
- Priority (P0 critical / P1 high / P2 normal)
- Included Feature Units (list of FU IDs, e.g., "FU-100, FU-101, FU-102")
- Excluded scope (what's explicitly NOT in this release)
- Release-level acceptance criteria:
- Product acceptance (core workflows, empty/error states)
- Technical acceptance (test coverage, performance, integrity)
- Business acceptance (metrics, KPIs)
- Cross-FU integration test requirements (flows that span multiple FUs)
- Deployment strategy (staging_first / canary / full_rollout)
- Rollback plan (how to revert if issues found)
- Post-release monitoring plan (key metrics, alerts)
After user input: Generate complete Release plan (release_plan.md), create manifest YAML (manifest.yaml), create integration test spec (integration_tests.md), create status tracker (status.md), save all to docs/releases/in_progress/{release_id}/.
After saving the release plan, offer the publish-plan prompt once:
Release plan saved to docs/releases/in_progress/{release_id}/release_plan.md.
Would you like to share this as a GitHub Discussion for pre-execution
input? Run /publish-plan docs/releases/in_progress/{release_id}/release_plan.md
to generate a public-facing post.
Do not wait for a response before proceeding to Step 3.
Step 3: Dependency Analysis and Schedule Generation
Analyze dependencies:
- Load all FU manifests for FUs in Release
- Extract dependencies from each FU's
dependencies.requiresfield - Build dependency graph: FU → [list of required FUs]
- Detect cycles: If cycle found → REJECT with error message. List cycle: "FU-A → FU-B → FU-C → FU-A"
- Validate dependencies: If any required FU is ⏳ Not Started and not in this Release → REJECT. If any required FU is 🔨 Partial → WARN but allow with user confirmation. If any required FU is ✅ Complete → proceed.
Generate execution schedule:
- Perform topological sort of FU dependency graph
- Group into batches:
- Batch 0: FUs with no dependencies
- Batch 1: FUs that depend only on Batch 0
- Batch 2: FUs that depend only on Batch 0 or 1
- ... continue until all FUs assigned to batches
- Identify parallelization opportunities:
- Within each batch, FUs can execute in parallel
- Estimate timeline:
- Sum FU effort estimates per batch
- Account for parallelization (divide by number of parallel agents if applicable)
- Save execution schedule to
execution_schedule.md
Pre-Mortem Analysis:
- Identify top 3-5 most likely failure modes for this Release
- For each failure mode, specify:
- Early warning signals (metrics, test failures, timeline slips)
- Mitigating FUs or actions
- Rollback plan
- Present pre-mortem to user and ask:
- "Do these failure modes match your concerns? (yes/no)"
- "What other failure modes should we plan for?"
- Incorporate feedback and add "Pre-Mortem" section to Release plan
WIP and Parallelization Limits:
- Encode limits in
manifest.yaml:max_parallel_fus: <number>(default: 3)max_high_risk_in_parallel: <number>(default: 1)
- Present limits to user: "Proposed limits: max_parallel_fus=3, max_high_risk_in_parallel=1. Approve? (yes/modify)"
Machine-Checkable Exit Criteria:
- For each Release acceptance criterion, define:
- Concrete test suite or script that validates it
- Single metric or query that proves it
- Add these to
integration_tests.mdwith explicit pass/fail conditions - Present to user: "Each acceptance criterion now has a machine-checkable test. Review? (yes/modify)"
Present schedule to user: Display batch breakdown, show which FUs run in parallel, show estimated timeline, show WIP limits and pre-mortem failure modes. STOP and prompt: "Approve execution schedule? (yes/no/modify)"
If user approves:
- Initialize
status.mdwith "Decision Log" section (empty initially) - Update Release status to
in_progress - Proceed to Step 4
If user requests modifications:
- Adjust schedule based on user input
- Re-present for approval
Step 4: Execute FU Batches (Autonomous)
Before starting execution, prompt user for execution strategy:
- Run
node scripts/release_orchestrator.js <release_id> - Orchestrator will prompt: "How would you like to execute this release build? 1. Single-agent (sequential execution) 2. Multi-agent (parallel execution)"
- If single-agent selected, orchestrator recommends model based on release complexity
- Selected strategy saved to
manifest.yaml
For each batch in execution schedule (in order):
Batch Execution Loop:
-
Start all FUs in batch:
- For each FU in batch:
- Check if FU spec exists
- If not, run
Create New Feature Unitcommand (Checkpoint 0) - If UI FU and no prototype, run
Create Prototypecommand - If UI FU and prototype not approved, run Checkpoint 1 (Prototype Review)
- Run
Run Feature Workflowcommand to implement FU - Run
Final Reviewcommand (Checkpoint 2) for FU approval
- If multiple FUs in batch, suggest running in parallel (separate agent sessions or worktrees)
- For each FU in batch:
-
Wait for all FUs in batch to complete
-
Run cross-FU integration tests:
- Execute integration test suite from
integration_tests.md - Test flows that span multiple FUs in this batch
- If tests fail: STOP and report failures to user. User decides: fix and retry, skip FU, or abort Release
- If tests pass, proceed
- Execute integration test suite from
-
Update Release status:
- Mark batch as
completedinstatus.md - Update progress percentage:
(completed_batches / total_batches) * 100 - If any decisions were made during batch execution (scope changes, FU deferrals, etc.), append to Decision Log in
status.mdwith timestamp
- Mark batch as
After all batches complete:
- Mark all FUs as
completedin status tracker - Proceed to Step 5
Step 5: Checkpoint 1 — Mid-Release Review (Optional)
Check if mid-release checkpoint is configured: Look for checkpoint_1_after_batch in manifest.yaml. If not configured, skip to Step 6.
If configured and batch threshold reached, present mid-release status:
- "Mid-release checkpoint reached"
- "FUs completed: X/Y"
- "Integration tests: [pass/fail summary]"
- "Current batch: N"
- "Remaining batches: [list]"
STOP and prompt user:
- "Continue to remaining FUs? (yes/no/pause)"
If user responds:
- yes → continue to remaining batches
- no → halt execution, mark Release as
paused - pause → halt execution, user can resume later
Step 6: Cross-Release Integration Testing
Run full integration test suite:
- Execute all tests from
integration_tests.md - Run end-to-end user flows that span multiple FUs
- Verify no regressions in existing functionality
- Run performance benchmarks (if specified in acceptance criteria)
- Verify graph integrity (0 orphans, 0 cycles if applicable)
Check Release-level acceptance criteria:
- Product acceptance: Core workflows functional?
- Technical acceptance: Test coverage met? Performance targets hit?
- Business acceptance: Metrics instrumented? Analytics ready?
Generate integration test report:
- Save to
integration_test_report.md - Include:
- Pass/fail summary
- Performance metrics
- Regression test results
- Issues found (if any)
If tests fail: STOP and report failures to user. User decides: fix issues and re-test, or abort Release.
If all tests pass: Proceed to Step 7.
Step 7: Checkpoint 2 — Pre-Release Sign-Off
Present Release summary:
- FUs completed: X/Y (with list)
- Integration tests: [pass/fail summary with link to report]
- Acceptance criteria: [checklist with ✅ / ❌ status]
- Release plan: [link]
- Integration test report: [link]
STOP and prompt user:
- "Release {release_id} ready for deployment."
- "All FUs complete: [list with status]"
- "Integration tests passed: [summary]"
- "Acceptance criteria met: [checklist]"
- "Approve for deployment? (yes/no)"
- "Any final changes needed? (list or 'none')"
If user requests changes:
- Apply changes
- Re-run affected tests
- Update status
- Repeat Checkpoint 2 until approved
If user approves:
- Update Release status to
ready_for_deployment - Proceed to Step 8
Step 8: Deployment
Execute deployment plan:
- Follow deployment strategy from Release plan:
- staging_first: Deploy to staging, run smoke tests, then production
- canary: Deploy to small % of users, monitor, then full rollout
- full_rollout: Deploy to all users at once
- Run deployment steps:
- Build production bundle
- Run database migrations (if any)
- Deploy backend services
- Deploy frontend assets
- Run health checks
- Run smoke tests
- Verify deployment success:
- Health checks pass?
- Smoke tests pass?
- Key metrics normal?
If deployment fails: STOP and report failure, execute rollback plan, user investigates and fixes.
If deployment succeeds: Update Release status to deployed, record deployment timestamp, proceed to Step 9.
Step 9: Post-Release Monitoring Setup
Setup monitoring:
- Verify metrics instrumentation:
- Check that key metrics from acceptance criteria are being collected
- Verify dashboards are accessible
- Setup alerts:
- Configure alerts for critical metrics (error rates, latency, etc.)
- Document monitoring links:
- Add links to dashboards, alerts to Release status doc
Mark Release as completed:
- Update status to
completed - Move Release files from
in_progress/tocompleted/:mv docs/releases/in_progress/{release_id} docs/releases/completed/{release_id}
Present completion summary:
- "Release {release_id} deployed and complete!"
- "Deployed at: {timestamp}"
- "Monitoring: {dashboard_links}"
- "FUs shipped: [list]"
Example Interaction
User: Create release v1.0.0 for MVP
Agent: Loading Release workflow documentation...
Agent: No existing Release plan found for v1.0.0. Starting interactive Release planning (Checkpoint 0).
Agent: What is the Release name and version?
User: MVP, v1.0.0
Agent: What is the Release goal? (1-2 sentence summary)
User: Ship deterministic Truth Layer with ingestion, extraction, entity resolution, timeline, and MCP access for AI tools. Support multi-user teams.
Agent: What is the target ship date?
User: 2025-03-01
Agent: What is the priority?
User: P0 critical
Agent: Which Feature Units should be included? (list FU IDs)
User: FU-100, FU-101, FU-102, FU-103, FU-105, FU-300, FU-700, FU-701
Agent: [loads the matching Feature Unit specs from `docs/feature_units/`]
Agent: What scope is explicitly excluded from this release?
User: Semantic search, Plaid integration, X/Instagram integrations (all post-MVP)
Agent: What are the Release-level acceptance criteria? (product, technical, business)
User: [provides release-specific criteria]
Agent: What cross-FU integration tests are required?
User: Full user flow: upload → extraction → entity resolution → event generation → timeline display → AI query via MCP
Agent: What is the deployment strategy?
User: staging_first
Agent: What is the rollback plan?
User: Revert to previous release tag, restore DB snapshot if needed
Agent: What monitoring plan should be setup post-release?
User: Monitor upload success rate, P95 latency, DAU, orphan node count
Agent: Generating Release plan, manifest, and integration test spec...
Agent: Analyzing FU dependencies...
Agent: Dependency graph:
FU-100 → []
FU-101 → [FU-100]
FU-102 → [FU-100]
FU-103 → [FU-101, FU-102]
FU-105 → [FU-103]
FU-300 → []
FU-700 → []
FU-701 → [FU-700]
Agent: Generating execution schedule...
Agent: Execution schedule:
Batch 0: FU-100, FU-300, FU-700 (can run in parallel)
Batch 1: FU-101, FU-102 (can run in parallel, depend on FU-100)
Batch 2: FU-103 (depends on FU-101, FU-102)
Batch 3: FU-105, FU-701 (can run in parallel, FU-105 depends on FU-103, FU-701 depends on FU-700)
Agent: Estimated timeline: 11-14 days (with parallelization across 3 agents)
Agent: Approve execution schedule? (yes/no/modify)
User: yes
Agent: Starting batch execution...
Agent: Batch 0: Starting FU-100, FU-300, FU-700 in parallel...
[FU execution proceeds autonomously]
Agent: Batch 0 complete. Running cross-FU integration tests...
Agent: Integration tests passed.
Agent: Batch 1: Starting FU-101, FU-102 in parallel...
[continues through all batches]
Agent: All batches complete. Running full integration test suite...
Agent: All integration tests passed.
Agent: Release v1.0.0 ready for deployment.
Agent: All FUs complete: FU-100 ✅, FU-101 ✅, FU-102 ✅, FU-103 ✅, FU-105 ✅, FU-300 ✅, FU-700 ✅, FU-701 ✅
Agent: Integration tests passed: 12/12
Agent: Acceptance criteria met: ✅ Product, ✅ Technical, ✅ Business
Agent: Approve for deployment? (yes/no)
User: yes
Agent: Deploying to staging...
Agent: Staging smoke tests passed.
Agent: Deploying to production...
Agent: Production health checks passed.
Agent: Release v1.0.0 deployed and complete!
Agent: Monitoring: [dashboard links]
Agent Instructions
Load Order
foundation/development/release_workflow.md(primary)docs/feature_units/standards/creating_feature_units.md(for FU creation)docs/feature_units/standards/execution_instructions.md(for FU execution)docs/feature_units/completed/anddocs/feature_units/in_progress/(for Feature Unit specs)
Constraints
- Do NOT proceed past Checkpoint 0 without complete Release plan
- Always validate FU dependencies before generating schedule
- REJECT if circular dependencies detected
- Always run cross-FU integration tests after each batch
- Always get user approval at Checkpoints 0, 1 (if configured), 2
- Do NOT deploy without passing integration tests and acceptance criteria
Forbidden Patterns
- Starting FUs out of dependency order
- Skipping integration tests
- Proceeding without user approval at checkpoints
- Deploying with failing tests or unmet acceptance criteria
Signals
- GitHub stars
- 32
- Forks
- 3
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
create-release-markmhendrickson- Source
- github.com/markmhendrickson/neotoma