agentleFS
markmhendricksonmarkmhendrickson/neotoma/.claude/skills/create-release/SKILL.md

create-release

Skill38 starsChanged 2 months agoMITView on GitHub

Create New Release

19 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use create-issue, create-pr and 1 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • sahinSkill

    create-issue

    Also in 4 projects that use this

  • SentrySkill

    create-pr

    Create pull requests following Sentry conventions. Use when opening PRs, writing PR descriptions, or preparing changes for review. Follows Sentry's code review guidelines.

    Also in 5 projects that use this

  • DockerSkill

    review-pr

    Review one or more incoming Docker documentation pull requests as a maintainer. Independently validate technical claims, assess editorial fit and information architecture, choose a verdict, and draft exact inline or PR-wide feedback behind a confirmation gate. Use for requests such as "review PR 123", "is this PR correct?", "does this information belong here?", "validate this PR", or "help review backlog PRs". Do not use to maintain or fix a PR you own; use maintain-pr for that.

    Also in 4 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

38 rules. 0 are common, 27 are distinctive, and 11 are very specific to this project.

  • 0

    Common

    Most of the 18 edited versions we read keep these.

  • 27

    Distinctive

    This author's own choices. Worth a look.

  • 11

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Explicit Command: Use when you know exactly what you want: start a new release, plan multi-FU work with dependency resolution, generate …

    line 25
  2. Distinctive:

    Check if Release plan exists:

    line 49
  3. Distinctive:

    Do not wait for a response before proceeding to Step 3.

    line 85
  4. Distinctive:

    Detect cycles: If cycle found → REJECT with error message.

    line 94
  5. Distinctive:

    Validate dependencies: If any required FU is ⏳ Not Started and not in this Release → REJECT.

    line 95
  6. Very specific:

    Add these to integration_tests.md with explicit pass/fail conditions

    line 136
  7. Very specific:

    Update Release status to in_progress

    line 144
  8. Distinctive:

    Before starting execution, prompt user for execution strategy:

    line 156
  9. Distinctive:

    If single-agent selected, orchestrator recommends model based on release complexity

    line 159
  10. Distinctive:

    Check if FU spec exists

    line 169
  11. Very specific:

    If not, run Create New Feature Unit command (Checkpoint 0)

    line 170
  12. Very specific:

    If UI FU and no prototype, run Create Prototype command

    line 171
  13. Distinctive:

    If UI FU and prototype not approved, run Checkpoint 1 (Prototype Review)

    line 172
  14. Very specific:

    Run Run Feature Workflow command to implement FU

    line 173
  15. Very specific:

    Run Final Review command (Checkpoint 2) for FU approval

    line 174
  16. Distinctive:

    If multiple FUs in batch, suggest running in parallel (separate agent sessions or worktrees)

    line 175
  17. Distinctive:

    Test flows that span multiple FUs in this batch

    line 182
  18. Distinctive:

    If tests fail: STOP and report failures to user.

    line 183
  19. Distinctive:

    If tests pass, proceed

    line 184
  20. Very specific:

    Update progress percentage: (completed_batches / total_batches) * 100

    line 188
  21. Very specific:

    If any decisions were made during batch execution (scope changes, FU deferrals, etc.), append to Decision Log in status.md with timestamp

    line 189
  22. Very specific:

    Check if mid-release checkpoint is configured: Look for checkpoint_1_after_batch in manifest.yaml.

    line 200
  23. Distinctive:

    If configured and batch threshold reached, present mid-release status:

    line 202
  24. Distinctive:

    Run full integration test suite:

    line 224
  25. Distinctive:

    Check Release-level acceptance criteria:

    line 232
  26. Distinctive:

    If tests fail: STOP and report failures to user.

    line 247
  27. Distinctive:

    Run database migrations (if any)

    line 294
  28. Distinctive:

    If deployment fails: STOP and report failure, execute rollback plan, user investigates and fixes.

    line 304
  29. Very specific:

    If deployment succeeds: Update Release status to deployed, record deployment timestamp, proceed to Step 9.

    line 306
  30. Distinctive:

    Check that key metrics from acceptance criteria are being collected

    line 313
  31. Distinctive:

    Verify dashboards are accessible

    line 314
  32. Distinctive:

    Add links to dashboards, alerts to Release status doc

    line 318
  33. Very specific:

    Update status to completed

    line 322
  34. Distinctive:

    Do NOT proceed past Checkpoint 0 without complete Release plan

    line 439
  35. Distinctive:

    Always validate FU dependencies before generating schedule

    line 440
  36. Distinctive:

    Always run cross-FU integration tests after each batch

    line 442
  37. Distinctive:

    Always get user approval at Checkpoints 0, 1 (if configured), 2

    line 443
  38. Distinctive:

    Do NOT deploy without passing integration tests and acceptance criteria

    line 444

“Common” is measured: kept by at least 6 in 10 of the 18 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md
<!-- Source: foundation/.cursor/skills/create-release/SKILL.md -->

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/ and docs/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:

  1. Release name and version (e.g., "MVP", "v1.0.0")
  2. Release goal (1-2 sentence summary of what this ships)
  3. Target ship date (date or "when ready")
  4. Priority (P0 critical / P1 high / P2 normal)
  5. Included Feature Units (list of FU IDs, e.g., "FU-100, FU-101, FU-102")
  6. Excluded scope (what's explicitly NOT in this release)
  7. Release-level acceptance criteria:
    • Product acceptance (core workflows, empty/error states)
    • Technical acceptance (test coverage, performance, integrity)
    • Business acceptance (metrics, KPIs)
  8. Cross-FU integration test requirements (flows that span multiple FUs)
  9. Deployment strategy (staging_first / canary / full_rollout)
  10. Rollback plan (how to revert if issues found)
  11. 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:

  1. Load all FU manifests for FUs in Release
  2. Extract dependencies from each FU's dependencies.requires field
  3. Build dependency graph: FU → [list of required FUs]
  4. Detect cycles: If cycle found → REJECT with error message. List cycle: "FU-A → FU-B → FU-C → FU-A"
  5. 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:

  1. Perform topological sort of FU dependency graph
  2. 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
  3. Identify parallelization opportunities:
    • Within each batch, FUs can execute in parallel
  4. Estimate timeline:
    • Sum FU effort estimates per batch
    • Account for parallelization (divide by number of parallel agents if applicable)
  5. Save execution schedule to execution_schedule.md

Pre-Mortem Analysis:

  1. Identify top 3-5 most likely failure modes for this Release
  2. For each failure mode, specify:
    • Early warning signals (metrics, test failures, timeline slips)
    • Mitigating FUs or actions
    • Rollback plan
  3. Present pre-mortem to user and ask:
    • "Do these failure modes match your concerns? (yes/no)"
    • "What other failure modes should we plan for?"
  4. Incorporate feedback and add "Pre-Mortem" section to Release plan

WIP and Parallelization Limits:

  1. Encode limits in manifest.yaml:
    • max_parallel_fus: <number> (default: 3)
    • max_high_risk_in_parallel: <number> (default: 1)
  2. Present limits to user: "Proposed limits: max_parallel_fus=3, max_high_risk_in_parallel=1. Approve? (yes/modify)"

Machine-Checkable Exit Criteria:

  1. For each Release acceptance criterion, define:
    • Concrete test suite or script that validates it
    • Single metric or query that proves it
  2. Add these to integration_tests.md with explicit pass/fail conditions
  3. 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.md with "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:

  1. Start all FUs in batch:

    • For each FU in batch:
      • Check if FU spec exists
      • If not, run Create New Feature Unit command (Checkpoint 0)
      • If UI FU and no prototype, run Create Prototype command
      • If UI FU and prototype not approved, run Checkpoint 1 (Prototype Review)
      • Run Run Feature Workflow command to implement FU
      • Run Final Review command (Checkpoint 2) for FU approval
    • If multiple FUs in batch, suggest running in parallel (separate agent sessions or worktrees)
  2. Wait for all FUs in batch to complete
  3. 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
  4. Update Release status:
    • Mark batch as completed in status.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.md with timestamp

After all batches complete:

  • Mark all FUs as completed in 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:

  1. Execute all tests from integration_tests.md
  2. Run end-to-end user flows that span multiple FUs
  3. Verify no regressions in existing functionality
  4. Run performance benchmarks (if specified in acceptance criteria)
  5. 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:

  1. 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
  2. Run deployment steps:
    • Build production bundle
    • Run database migrations (if any)
    • Deploy backend services
    • Deploy frontend assets
    • Run health checks
    • Run smoke tests
  3. 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:

  1. Verify metrics instrumentation:
    • Check that key metrics from acceptance criteria are being collected
    • Verify dashboards are accessible
  2. Setup alerts:
    • Configure alerts for critical metrics (error rates, latency, etc.)
  3. 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/ to completed/:
    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

  1. foundation/development/release_workflow.md (primary)
  2. docs/feature_units/standards/creating_feature_units.md (for FU creation)
  3. docs/feature_units/standards/execution_instructions.md (for FU execution)
  4. docs/feature_units/completed/ and docs/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

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.