@zigrivers/scaffold 2.28.1 → 2.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +309 -136
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +94 -14
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/build.test.js +30 -5
- package/dist/cli/commands/build.test.js.map +1 -1
- package/dist/cli/commands/check.d.ts +12 -0
- package/dist/cli/commands/check.d.ts.map +1 -0
- package/dist/cli/commands/check.js +311 -0
- package/dist/cli/commands/check.js.map +1 -0
- package/dist/cli/commands/check.test.d.ts +2 -0
- package/dist/cli/commands/check.test.d.ts.map +1 -0
- package/dist/cli/commands/check.test.js +412 -0
- package/dist/cli/commands/check.test.js.map +1 -0
- package/dist/cli/commands/complete.d.ts +12 -0
- package/dist/cli/commands/complete.d.ts.map +1 -0
- package/dist/cli/commands/complete.js +101 -0
- package/dist/cli/commands/complete.js.map +1 -0
- package/dist/cli/commands/complete.test.d.ts +2 -0
- package/dist/cli/commands/complete.test.d.ts.map +1 -0
- package/dist/cli/commands/complete.test.js +133 -0
- package/dist/cli/commands/complete.test.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts.map +1 -1
- package/dist/cli/commands/dashboard.js +12 -8
- package/dist/cli/commands/dashboard.js.map +1 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +4 -0
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/knowledge.d.ts.map +1 -1
- package/dist/cli/commands/knowledge.js +6 -2
- package/dist/cli/commands/knowledge.js.map +1 -1
- package/dist/cli/commands/knowledge.test.js +16 -11
- package/dist/cli/commands/knowledge.test.js.map +1 -1
- package/dist/cli/commands/next.d.ts.map +1 -1
- package/dist/cli/commands/next.js +41 -13
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/next.test.js +3 -0
- package/dist/cli/commands/next.test.js.map +1 -1
- package/dist/cli/commands/reset.d.ts +1 -0
- package/dist/cli/commands/reset.d.ts.map +1 -1
- package/dist/cli/commands/reset.js +179 -67
- package/dist/cli/commands/reset.js.map +1 -1
- package/dist/cli/commands/reset.test.js +360 -0
- package/dist/cli/commands/reset.test.js.map +1 -1
- package/dist/cli/commands/rework.d.ts +20 -0
- package/dist/cli/commands/rework.d.ts.map +1 -0
- package/dist/cli/commands/rework.js +332 -0
- package/dist/cli/commands/rework.js.map +1 -0
- package/dist/cli/commands/rework.test.d.ts +2 -0
- package/dist/cli/commands/rework.test.d.ts.map +1 -0
- package/dist/cli/commands/rework.test.js +297 -0
- package/dist/cli/commands/rework.test.js.map +1 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +59 -31
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/run.test.js +288 -6
- package/dist/cli/commands/run.test.js.map +1 -1
- package/dist/cli/commands/skill.d.ts +12 -0
- package/dist/cli/commands/skill.d.ts.map +1 -0
- package/dist/cli/commands/skill.js +123 -0
- package/dist/cli/commands/skill.js.map +1 -0
- package/dist/cli/commands/skill.test.d.ts +2 -0
- package/dist/cli/commands/skill.test.d.ts.map +1 -0
- package/dist/cli/commands/skill.test.js +297 -0
- package/dist/cli/commands/skill.test.js.map +1 -0
- package/dist/cli/commands/skip.d.ts +1 -1
- package/dist/cli/commands/skip.d.ts.map +1 -1
- package/dist/cli/commands/skip.js +123 -57
- package/dist/cli/commands/skip.js.map +1 -1
- package/dist/cli/commands/skip.test.js +91 -0
- package/dist/cli/commands/skip.test.js.map +1 -1
- package/dist/cli/commands/status.d.ts +1 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +57 -10
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/status.test.js +81 -0
- package/dist/cli/commands/status.test.js.map +1 -1
- package/dist/cli/commands/update.test.js +252 -0
- package/dist/cli/commands/update.test.js.map +1 -1
- package/dist/cli/commands/version.test.js +171 -1
- package/dist/cli/commands/version.test.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/adapters/adapter.d.ts +14 -0
- package/dist/core/adapters/adapter.d.ts.map +1 -1
- package/dist/core/adapters/adapter.js.map +1 -1
- package/dist/core/adapters/adapter.test.js +10 -0
- package/dist/core/adapters/adapter.test.js.map +1 -1
- package/dist/core/adapters/claude-code.d.ts.map +1 -1
- package/dist/core/adapters/claude-code.js +47 -10
- package/dist/core/adapters/claude-code.js.map +1 -1
- package/dist/core/adapters/claude-code.test.js +41 -20
- package/dist/core/adapters/claude-code.test.js.map +1 -1
- package/dist/core/adapters/codex.d.ts.map +1 -1
- package/dist/core/adapters/codex.js +5 -1
- package/dist/core/adapters/codex.js.map +1 -1
- package/dist/core/adapters/codex.test.js +5 -0
- package/dist/core/adapters/codex.test.js.map +1 -1
- package/dist/core/adapters/universal.d.ts.map +1 -1
- package/dist/core/adapters/universal.js +0 -1
- package/dist/core/adapters/universal.js.map +1 -1
- package/dist/core/adapters/universal.test.js +5 -0
- package/dist/core/adapters/universal.test.js.map +1 -1
- package/dist/core/assembly/context-gatherer.d.ts.map +1 -1
- package/dist/core/assembly/context-gatherer.js +5 -2
- package/dist/core/assembly/context-gatherer.js.map +1 -1
- package/dist/core/assembly/engine.d.ts.map +1 -1
- package/dist/core/assembly/engine.js +10 -2
- package/dist/core/assembly/engine.js.map +1 -1
- package/dist/core/assembly/engine.test.js +19 -0
- package/dist/core/assembly/engine.test.js.map +1 -1
- package/dist/core/assembly/knowledge-loader.d.ts +25 -0
- package/dist/core/assembly/knowledge-loader.d.ts.map +1 -1
- package/dist/core/assembly/knowledge-loader.js +75 -2
- package/dist/core/assembly/knowledge-loader.js.map +1 -1
- package/dist/core/assembly/knowledge-loader.test.js +388 -1
- package/dist/core/assembly/knowledge-loader.test.js.map +1 -1
- package/dist/core/assembly/meta-prompt-loader.d.ts +6 -0
- package/dist/core/assembly/meta-prompt-loader.d.ts.map +1 -1
- package/dist/core/assembly/meta-prompt-loader.js +41 -25
- package/dist/core/assembly/meta-prompt-loader.js.map +1 -1
- package/dist/core/assembly/preset-loader.d.ts +10 -0
- package/dist/core/assembly/preset-loader.d.ts.map +1 -1
- package/dist/core/assembly/preset-loader.js +26 -1
- package/dist/core/assembly/preset-loader.js.map +1 -1
- package/dist/core/assembly/preset-loader.test.js +65 -1
- package/dist/core/assembly/preset-loader.test.js.map +1 -1
- package/dist/core/assembly/update-mode.d.ts.map +1 -1
- package/dist/core/assembly/update-mode.js +10 -4
- package/dist/core/assembly/update-mode.js.map +1 -1
- package/dist/core/assembly/update-mode.test.js +47 -0
- package/dist/core/assembly/update-mode.test.js.map +1 -1
- package/dist/core/dependency/dependency.d.ts.map +1 -1
- package/dist/core/dependency/dependency.js +3 -2
- package/dist/core/dependency/dependency.js.map +1 -1
- package/dist/core/dependency/dependency.test.js +2 -0
- package/dist/core/dependency/dependency.test.js.map +1 -1
- package/dist/core/dependency/eligibility.js +3 -3
- package/dist/core/dependency/eligibility.js.map +1 -1
- package/dist/core/dependency/eligibility.test.js +2 -0
- package/dist/core/dependency/eligibility.test.js.map +1 -1
- package/dist/core/dependency/graph.d.ts.map +1 -1
- package/dist/core/dependency/graph.js +4 -0
- package/dist/core/dependency/graph.js.map +1 -1
- package/dist/core/dependency/graph.test.d.ts +2 -0
- package/dist/core/dependency/graph.test.d.ts.map +1 -0
- package/dist/core/dependency/graph.test.js +262 -0
- package/dist/core/dependency/graph.test.js.map +1 -0
- package/dist/core/rework/phase-selector.d.ts +24 -0
- package/dist/core/rework/phase-selector.d.ts.map +1 -0
- package/dist/core/rework/phase-selector.js +98 -0
- package/dist/core/rework/phase-selector.js.map +1 -0
- package/dist/core/rework/phase-selector.test.d.ts +2 -0
- package/dist/core/rework/phase-selector.test.d.ts.map +1 -0
- package/dist/core/rework/phase-selector.test.js +138 -0
- package/dist/core/rework/phase-selector.test.js.map +1 -0
- package/dist/dashboard/generator.d.ts +48 -17
- package/dist/dashboard/generator.d.ts.map +1 -1
- package/dist/dashboard/generator.js +75 -5
- package/dist/dashboard/generator.js.map +1 -1
- package/dist/dashboard/generator.test.js +213 -5
- package/dist/dashboard/generator.test.js.map +1 -1
- package/dist/dashboard/template.d.ts +1 -1
- package/dist/dashboard/template.d.ts.map +1 -1
- package/dist/dashboard/template.js +755 -114
- package/dist/dashboard/template.js.map +1 -1
- package/dist/e2e/knowledge.test.js +4 -3
- package/dist/e2e/knowledge.test.js.map +1 -1
- package/dist/e2e/pipeline.test.js +2 -0
- package/dist/e2e/pipeline.test.js.map +1 -1
- package/dist/e2e/rework.test.d.ts +6 -0
- package/dist/e2e/rework.test.d.ts.map +1 -0
- package/dist/e2e/rework.test.js +226 -0
- package/dist/e2e/rework.test.js.map +1 -0
- package/dist/index.js +0 -0
- package/dist/project/adopt.test.js +2 -0
- package/dist/project/adopt.test.js.map +1 -1
- package/dist/project/claude-md.js +2 -2
- package/dist/project/claude-md.js.map +1 -1
- package/dist/project/claude-md.test.js +4 -4
- package/dist/project/claude-md.test.js.map +1 -1
- package/dist/project/detector.d.ts.map +1 -1
- package/dist/project/detector.js +4 -1
- package/dist/project/detector.js.map +1 -1
- package/dist/project/frontmatter.d.ts.map +1 -1
- package/dist/project/frontmatter.js +54 -15
- package/dist/project/frontmatter.js.map +1 -1
- package/dist/project/frontmatter.test.js +2 -2
- package/dist/project/frontmatter.test.js.map +1 -1
- package/dist/state/rework-manager.d.ts +16 -0
- package/dist/state/rework-manager.d.ts.map +1 -0
- package/dist/state/rework-manager.js +126 -0
- package/dist/state/rework-manager.js.map +1 -0
- package/dist/state/rework-manager.test.d.ts +2 -0
- package/dist/state/rework-manager.test.d.ts.map +1 -0
- package/dist/state/rework-manager.test.js +191 -0
- package/dist/state/rework-manager.test.js.map +1 -0
- package/dist/state/state-manager.d.ts +13 -0
- package/dist/state/state-manager.d.ts.map +1 -1
- package/dist/state/state-manager.js +39 -2
- package/dist/state/state-manager.js.map +1 -1
- package/dist/state/state-manager.test.js +74 -1
- package/dist/state/state-manager.test.js.map +1 -1
- package/dist/state/state-migration.d.ts +23 -0
- package/dist/state/state-migration.d.ts.map +1 -0
- package/dist/state/state-migration.js +144 -0
- package/dist/state/state-migration.js.map +1 -0
- package/dist/state/state-migration.test.d.ts +2 -0
- package/dist/state/state-migration.test.d.ts.map +1 -0
- package/dist/state/state-migration.test.js +451 -0
- package/dist/state/state-migration.test.js.map +1 -0
- package/dist/types/assembly.d.ts +2 -0
- package/dist/types/assembly.d.ts.map +1 -1
- package/dist/types/dependency.d.ts +2 -2
- package/dist/types/dependency.d.ts.map +1 -1
- package/dist/types/frontmatter.d.ts +100 -7
- package/dist/types/frontmatter.d.ts.map +1 -1
- package/dist/types/frontmatter.js +89 -1
- package/dist/types/frontmatter.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/lock.d.ts +1 -1
- package/dist/types/lock.d.ts.map +1 -1
- package/dist/types/rework.d.ts +36 -0
- package/dist/types/rework.d.ts.map +1 -0
- package/dist/types/rework.js +2 -0
- package/dist/types/rework.js.map +1 -0
- package/dist/utils/errors.d.ts +1 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +8 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/fs.d.ts +6 -0
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +13 -0
- package/dist/utils/fs.js.map +1 -1
- package/dist/validation/config-validator.test.d.ts +2 -0
- package/dist/validation/config-validator.test.d.ts.map +1 -0
- package/dist/validation/config-validator.test.js +210 -0
- package/dist/validation/config-validator.test.js.map +1 -0
- package/dist/validation/dependency-validator.test.d.ts +2 -0
- package/dist/validation/dependency-validator.test.d.ts.map +1 -0
- package/dist/validation/dependency-validator.test.js +215 -0
- package/dist/validation/dependency-validator.test.js.map +1 -0
- package/dist/validation/frontmatter-validator.test.d.ts +2 -0
- package/dist/validation/frontmatter-validator.test.d.ts.map +1 -0
- package/dist/validation/frontmatter-validator.test.js +371 -0
- package/dist/validation/frontmatter-validator.test.js.map +1 -0
- package/dist/validation/state-validator.test.d.ts +2 -0
- package/dist/validation/state-validator.test.d.ts.map +1 -0
- package/dist/validation/state-validator.test.js +325 -0
- package/dist/validation/state-validator.test.js.map +1 -0
- package/dist/wizard/suggestion.test.d.ts +2 -0
- package/dist/wizard/suggestion.test.d.ts.map +1 -0
- package/dist/wizard/suggestion.test.js +115 -0
- package/dist/wizard/suggestion.test.js.map +1 -0
- package/dist/wizard/wizard.d.ts.map +1 -1
- package/dist/wizard/wizard.js +34 -1
- package/dist/wizard/wizard.js.map +1 -1
- package/knowledge/core/adr-craft.md +4 -0
- package/knowledge/core/api-design.md +4 -0
- package/knowledge/core/automated-review-tooling.md +203 -0
- package/knowledge/core/coding-conventions.md +1 -1
- package/knowledge/core/database-design.md +4 -0
- package/knowledge/core/design-system-tokens.md +4 -0
- package/knowledge/core/domain-modeling.md +4 -0
- package/knowledge/core/git-workflow-patterns.md +200 -0
- package/knowledge/core/operations-runbook.md +5 -1
- package/knowledge/core/security-best-practices.md +4 -0
- package/knowledge/core/system-architecture.md +5 -1
- package/knowledge/core/task-decomposition.md +118 -3
- package/knowledge/core/user-story-innovation.md +13 -0
- package/knowledge/core/ux-specification.md +13 -0
- package/knowledge/execution/enhancement-workflow.md +201 -0
- package/knowledge/execution/task-claiming-strategy.md +130 -0
- package/knowledge/execution/tdd-execution-loop.md +172 -0
- package/knowledge/execution/worktree-management.md +205 -0
- package/knowledge/finalization/apply-fixes-and-freeze.md +12 -0
- package/knowledge/finalization/developer-onboarding.md +4 -0
- package/knowledge/finalization/implementation-playbook.md +83 -5
- package/knowledge/product/gap-analysis.md +5 -1
- package/knowledge/product/prd-innovation.md +12 -0
- package/knowledge/product/vision-craft.md +213 -0
- package/knowledge/review/review-adr.md +12 -0
- package/knowledge/review/review-api-design.md +13 -0
- package/knowledge/review/review-database-design.md +13 -0
- package/knowledge/review/review-domain-modeling.md +5 -1
- package/knowledge/review/review-implementation-tasks.md +58 -1
- package/knowledge/review/review-methodology.md +11 -0
- package/knowledge/review/review-operations.md +12 -0
- package/knowledge/review/review-prd.md +13 -0
- package/knowledge/review/review-security.md +12 -0
- package/knowledge/review/review-system-architecture.md +4 -2
- package/knowledge/review/review-testing-strategy.md +11 -0
- package/knowledge/review/review-user-stories.md +11 -0
- package/knowledge/review/review-ux-specification.md +13 -1
- package/knowledge/review/review-vision.md +255 -0
- package/knowledge/tools/release-management.md +222 -0
- package/knowledge/tools/session-analysis.md +215 -0
- package/knowledge/tools/version-strategy.md +200 -0
- package/knowledge/validation/critical-path-analysis.md +1 -1
- package/knowledge/validation/cross-phase-consistency.md +12 -0
- package/knowledge/validation/decision-completeness.md +13 -1
- package/knowledge/validation/dependency-validation.md +12 -0
- package/knowledge/validation/scope-management.md +12 -0
- package/knowledge/validation/traceability.md +12 -0
- package/methodology/README.md +37 -0
- package/methodology/custom-defaults.yml +12 -1
- package/methodology/deep.yml +11 -0
- package/methodology/mvp.yml +11 -0
- package/package.json +3 -3
- package/pipeline/architecture/review-architecture.md +18 -7
- package/pipeline/architecture/system-architecture.md +11 -8
- package/pipeline/build/multi-agent-resume.md +245 -0
- package/pipeline/build/multi-agent-start.md +236 -0
- package/pipeline/build/new-enhancement.md +456 -0
- package/pipeline/build/quick-task.md +381 -0
- package/pipeline/build/single-agent-resume.md +210 -0
- package/pipeline/build/single-agent-start.md +207 -0
- package/pipeline/consolidation/claude-md-optimization.md +11 -8
- package/pipeline/consolidation/workflow-audit.md +15 -11
- package/pipeline/decisions/adrs.md +7 -5
- package/pipeline/decisions/review-adrs.md +14 -6
- package/pipeline/environment/ai-memory-setup.md +18 -12
- package/pipeline/environment/automated-pr-review.md +10 -4
- package/pipeline/environment/design-system.md +9 -7
- package/pipeline/environment/dev-env-setup.md +8 -5
- package/pipeline/environment/git-workflow.md +3 -1
- package/pipeline/finalization/apply-fixes-and-freeze.md +16 -5
- package/pipeline/finalization/developer-onboarding-guide.md +22 -8
- package/pipeline/finalization/implementation-playbook.md +40 -11
- package/pipeline/foundation/beads.md +10 -7
- package/pipeline/foundation/coding-standards.md +6 -3
- package/pipeline/foundation/project-structure.md +5 -1
- package/pipeline/foundation/tdd.md +10 -6
- package/pipeline/foundation/tech-stack.md +9 -9
- package/pipeline/integration/add-e2e-testing.md +21 -6
- package/pipeline/modeling/domain-modeling.md +10 -7
- package/pipeline/modeling/review-domain-modeling.md +17 -6
- package/pipeline/parity/platform-parity-review.md +31 -11
- package/pipeline/planning/implementation-plan-review.md +21 -10
- package/pipeline/planning/implementation-plan.md +52 -19
- package/pipeline/pre/create-prd.md +22 -7
- package/pipeline/pre/innovate-prd.md +10 -8
- package/pipeline/pre/innovate-user-stories.md +9 -7
- package/pipeline/pre/review-prd.md +11 -2
- package/pipeline/pre/review-user-stories.md +12 -3
- package/pipeline/pre/user-stories.md +12 -7
- package/pipeline/quality/create-evals.md +10 -6
- package/pipeline/quality/operations.md +16 -12
- package/pipeline/quality/review-operations.md +19 -10
- package/pipeline/quality/review-security.md +21 -11
- package/pipeline/quality/review-testing.md +23 -12
- package/pipeline/quality/security.md +17 -13
- package/pipeline/quality/story-tests.md +6 -4
- package/pipeline/specification/api-contracts.md +11 -6
- package/pipeline/specification/database-schema.md +12 -6
- package/pipeline/specification/review-api.md +18 -9
- package/pipeline/specification/review-database.md +18 -9
- package/pipeline/specification/review-ux.md +20 -10
- package/pipeline/specification/ux-spec.md +8 -5
- package/pipeline/validation/critical-path-walkthrough.md +14 -7
- package/pipeline/validation/cross-phase-consistency.md +14 -7
- package/pipeline/validation/decision-completeness.md +14 -7
- package/pipeline/validation/dependency-graph-validation.md +15 -7
- package/pipeline/validation/implementability-dry-run.md +15 -7
- package/pipeline/validation/scope-creep-check.md +15 -7
- package/pipeline/validation/traceability-matrix.md +20 -7
- package/pipeline/vision/create-vision.md +267 -0
- package/pipeline/vision/innovate-vision.md +157 -0
- package/pipeline/vision/review-vision.md +149 -0
- package/skills/scaffold-pipeline/SKILL.md +33 -18
- package/skills/scaffold-runner/SKILL.md +172 -18
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-management
|
|
3
|
+
description: Release engineering patterns for semantic versioning and changelog management
|
|
4
|
+
topics: [release, versioning, changelog, git]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Release Management
|
|
8
|
+
|
|
9
|
+
Expert knowledge for release engineering including semantic versioning, conventional commit parsing, changelog generation, quality gates, and rollback procedures.
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
### Semantic Versioning
|
|
14
|
+
|
|
15
|
+
- **Major** (`X.0.0`) — breaking changes that require consumer migration
|
|
16
|
+
- **Minor** (`0.X.0`) — new features, backward-compatible additions
|
|
17
|
+
- **Patch** (`0.0.X`) — bug fixes, documentation, internal refactors
|
|
18
|
+
|
|
19
|
+
### Conventional Commit Parsing
|
|
20
|
+
|
|
21
|
+
Parse commits since the last release to determine the version bump:
|
|
22
|
+
|
|
23
|
+
- `feat:` → minor bump
|
|
24
|
+
- `fix:` → patch bump
|
|
25
|
+
- `BREAKING CHANGE:` footer or `!:` suffix → major bump
|
|
26
|
+
- Highest-wins rule: if any commit is major, the release is major
|
|
27
|
+
|
|
28
|
+
### Changelog Format
|
|
29
|
+
|
|
30
|
+
Follow the [Keep a Changelog](https://keepachangelog.com/) format. Group entries by Added, Fixed, Changed, and Other. Write for users, not developers.
|
|
31
|
+
|
|
32
|
+
### Quality Gates
|
|
33
|
+
|
|
34
|
+
All quality gates must pass before a release. Stop if gates fail unless `--force` is explicitly used.
|
|
35
|
+
|
|
36
|
+
## Deep Guidance
|
|
37
|
+
|
|
38
|
+
### Semantic Versioning — Extended
|
|
39
|
+
|
|
40
|
+
**Major version (breaking changes):**
|
|
41
|
+
- Removing or renaming a public API endpoint, function, or command
|
|
42
|
+
- Changing the behavior of an existing API in a way that breaks consumers
|
|
43
|
+
- Removing configuration options or changing their meaning
|
|
44
|
+
- Incompatible data format or schema changes
|
|
45
|
+
|
|
46
|
+
**Minor version (new features):**
|
|
47
|
+
- Adding a new API endpoint, function, or command
|
|
48
|
+
- Adding new optional configuration options
|
|
49
|
+
- Adding new fields to API responses (additive, non-breaking)
|
|
50
|
+
- New user-facing capabilities
|
|
51
|
+
|
|
52
|
+
**Patch version (fixes):**
|
|
53
|
+
- Bug fixes that restore expected behavior
|
|
54
|
+
- Documentation corrections
|
|
55
|
+
- Internal refactors that don't affect the public API
|
|
56
|
+
- Performance improvements with no API changes
|
|
57
|
+
- Dependency updates (non-breaking)
|
|
58
|
+
|
|
59
|
+
**Pre-release versions:**
|
|
60
|
+
- `v1.2.3-rc.1` — release candidate, feature-complete but not fully tested
|
|
61
|
+
- `v1.2.3-beta.1` — beta, feature-complete but may have known issues
|
|
62
|
+
- `v0.x.y` — initial development, no stability guarantees
|
|
63
|
+
|
|
64
|
+
### Conventional Commit Parsing — Extended
|
|
65
|
+
|
|
66
|
+
**Scanning commits:**
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# List commits since last tag
|
|
70
|
+
git log $(git describe --tags --abbrev=0 2>/dev/null || echo "$(git rev-list --max-parents=0 HEAD)")..HEAD --oneline
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Determining the bump:**
|
|
74
|
+
|
|
75
|
+
| Commit message | Bump |
|
|
76
|
+
|---|---|
|
|
77
|
+
| `feat: add export command` | minor |
|
|
78
|
+
| `feat!: redesign plugin API` | major |
|
|
79
|
+
| `fix: correct timezone handling` | patch |
|
|
80
|
+
| `fix: resolve crash\n\nBREAKING CHANGE: config format changed` | major |
|
|
81
|
+
| `chore: update dependencies` | patch |
|
|
82
|
+
| `docs: update README` | patch |
|
|
83
|
+
| `refactor: simplify auth flow` | patch |
|
|
84
|
+
|
|
85
|
+
**Highest-wins rule:**
|
|
86
|
+
If 10 commits include 8 fixes and 2 features, the release is a minor bump.
|
|
87
|
+
If any single commit includes a breaking change, the release is a major bump regardless of other commits.
|
|
88
|
+
|
|
89
|
+
**Edge cases:**
|
|
90
|
+
- No conventional commit prefix → treat as patch
|
|
91
|
+
- Multiple `feat:` commits → still a single minor bump
|
|
92
|
+
- `feat:` + `BREAKING CHANGE:` → major (breaking wins)
|
|
93
|
+
|
|
94
|
+
### Changelog Generation
|
|
95
|
+
|
|
96
|
+
**Format (Keep a Changelog):**
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
99
|
+
## [1.2.0] - 2026-03-29
|
|
100
|
+
|
|
101
|
+
### Added
|
|
102
|
+
- Export command for pipeline data (#145)
|
|
103
|
+
- Bulk task creation via CSV import (#148)
|
|
104
|
+
|
|
105
|
+
### Fixed
|
|
106
|
+
- Timezone handling in schedule display (#146)
|
|
107
|
+
- Dashboard filter state not persisting (#147)
|
|
108
|
+
|
|
109
|
+
### Changed
|
|
110
|
+
- Improved error messages for validation failures (#149)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Writing guidelines:**
|
|
114
|
+
- Audience is users, not developers — describe what changed from the user's perspective
|
|
115
|
+
- Use past tense ("Added," "Fixed," "Changed")
|
|
116
|
+
- Reference PR or issue numbers for traceability
|
|
117
|
+
- Group by type: Added (new features), Fixed (bug fixes), Changed (modifications to existing features), Removed, Deprecated, Security
|
|
118
|
+
- One line per change — keep it scannable
|
|
119
|
+
- Don't include internal refactors, test additions, or CI changes unless they affect users
|
|
120
|
+
|
|
121
|
+
### Quality Gates — Extended
|
|
122
|
+
|
|
123
|
+
**Before releasing, verify:**
|
|
124
|
+
|
|
125
|
+
1. **All tests pass** — `make check`, `make test`, or the project's equivalent
|
|
126
|
+
2. **Lint clean** — no linting warnings or errors
|
|
127
|
+
3. **Build succeeds** — the project compiles/bundles without errors
|
|
128
|
+
4. **No uncommitted changes** — working tree is clean
|
|
129
|
+
5. **On the correct branch** — releases come from `main`
|
|
130
|
+
6. **Up to date with remote** — `git pull` before tagging
|
|
131
|
+
|
|
132
|
+
**If gates fail:**
|
|
133
|
+
- Stop the release process
|
|
134
|
+
- Fix the failing gate
|
|
135
|
+
- Re-run all gates from the beginning
|
|
136
|
+
- Only proceed with `--force` if explicitly instructed (and document why)
|
|
137
|
+
|
|
138
|
+
### GitHub Release
|
|
139
|
+
|
|
140
|
+
**Creating a release:**
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# Create an annotated tag
|
|
144
|
+
git tag -a v1.2.0 -m "Release v1.2.0"
|
|
145
|
+
|
|
146
|
+
# Push the tag
|
|
147
|
+
git push origin v1.2.0
|
|
148
|
+
|
|
149
|
+
# Create a GitHub release with changelog as body
|
|
150
|
+
gh release create v1.2.0 --title "v1.2.0" --notes-file CHANGELOG_EXCERPT.md
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Pre-release versions:**
|
|
154
|
+
- Use `--prerelease` flag for `v0.x` versions or release candidates
|
|
155
|
+
- `gh release create v0.5.0 --prerelease --title "v0.5.0 (pre-release)"`
|
|
156
|
+
|
|
157
|
+
### Rollback Procedures
|
|
158
|
+
|
|
159
|
+
When a release needs to be reverted:
|
|
160
|
+
|
|
161
|
+
1. **Revert the tag locally and remotely:**
|
|
162
|
+
```bash
|
|
163
|
+
git tag -d v1.2.0
|
|
164
|
+
git push origin --delete v1.2.0
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
2. **Revert the commits** that were part of the bad release:
|
|
168
|
+
```bash
|
|
169
|
+
git revert <commit-range> --no-commit
|
|
170
|
+
git commit -m "[ROLLBACK] revert v1.2.0 changes"
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
3. **Update version files** back to the previous version
|
|
174
|
+
|
|
175
|
+
4. **Create a new patch release** with the rollback:
|
|
176
|
+
```bash
|
|
177
|
+
git tag -a v1.1.1 -m "Rollback: revert v1.2.0"
|
|
178
|
+
git push origin v1.1.1
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
5. **Update the changelog** with a note explaining the rollback
|
|
182
|
+
|
|
183
|
+
**Commit message convention for rollbacks:** prefix with `[ROLLBACK]` for easy identification in history.
|
|
184
|
+
|
|
185
|
+
### Conditional Beads Integration
|
|
186
|
+
|
|
187
|
+
When `.beads/` directory exists, enrich the changelog with task completion data:
|
|
188
|
+
|
|
189
|
+
```markdown
|
|
190
|
+
## [1.2.0] - 2026-03-29
|
|
191
|
+
|
|
192
|
+
### Added
|
|
193
|
+
- Export command for pipeline data (#145)
|
|
194
|
+
|
|
195
|
+
### Completed Tasks
|
|
196
|
+
- bd-42: Implement export endpoint
|
|
197
|
+
- bd-43: Add export CLI command
|
|
198
|
+
- bd-44: Write export integration tests
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Cross-reference closed Beads tasks by scanning `bd close` entries since the last release tag.
|
|
202
|
+
|
|
203
|
+
### Version File Detection
|
|
204
|
+
|
|
205
|
+
Scan the project root for version files and update all that are found:
|
|
206
|
+
|
|
207
|
+
| File | Field | Ecosystem |
|
|
208
|
+
|------|-------|-----------|
|
|
209
|
+
| `package.json` | `"version"` | Node.js / npm |
|
|
210
|
+
| `pyproject.toml` | `[project] version` | Python |
|
|
211
|
+
| `Cargo.toml` | `[package] version` | Rust |
|
|
212
|
+
| `.claude-plugin/plugin.json` | `"version"` | Claude Code plugin |
|
|
213
|
+
| `pubspec.yaml` | `version` | Flutter / Dart |
|
|
214
|
+
| `setup.cfg` | `version` | Python (legacy) |
|
|
215
|
+
| `version.txt` | entire file | Generic |
|
|
216
|
+
|
|
217
|
+
After updating version files, commit them in the same commit as the changelog update, before creating the tag.
|
|
218
|
+
|
|
219
|
+
## See Also
|
|
220
|
+
|
|
221
|
+
- [version-strategy](./version-strategy.md) — Version file management across ecosystems
|
|
222
|
+
- [git-workflow-patterns](../core/git-workflow-patterns.md) — Branching, tagging, and merge policies
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: session-analysis
|
|
3
|
+
description: Patterns for analyzing Claude Code sessions to discover automation opportunities
|
|
4
|
+
topics: [analysis, automation, sessions]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Session Analysis
|
|
8
|
+
|
|
9
|
+
Expert knowledge for analyzing Claude Code sessions to discover automation opportunities. Covers pattern detection, repeated action identification, and actionable automation recommendations.
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
### Pattern Detection
|
|
14
|
+
|
|
15
|
+
Review session history for recurring sequences of actions. Look for commands executed multiple times, error-retry cycles, and multi-step manual workflows that could be automated.
|
|
16
|
+
|
|
17
|
+
### Repeated Action Identification
|
|
18
|
+
|
|
19
|
+
Categorize repeated actions by type: git workflows, test runs, build commands, file editing patterns, environment setup, and debugging sequences.
|
|
20
|
+
|
|
21
|
+
### Automation Recommendations
|
|
22
|
+
|
|
23
|
+
For each discovered pattern, recommend an appropriate automation mechanism: shell aliases, git hooks, Makefile targets, Claude Code hooks, or standalone scripts. Rank by estimated time savings.
|
|
24
|
+
|
|
25
|
+
## Deep Guidance
|
|
26
|
+
|
|
27
|
+
### What to Look For
|
|
28
|
+
|
|
29
|
+
When analyzing a session (or set of sessions), search for these signal types:
|
|
30
|
+
|
|
31
|
+
**Repeated manual actions:**
|
|
32
|
+
- The same command (or close variants) executed 3+ times in a session
|
|
33
|
+
- Multi-step sequences performed identically each time (e.g., `git add . && git commit && git push`)
|
|
34
|
+
- Copy-paste patterns between files
|
|
35
|
+
|
|
36
|
+
**Common errors and their fixes:**
|
|
37
|
+
- Errors that appear, are diagnosed, and fixed the same way each time
|
|
38
|
+
- Lint failures that require the same remediation pattern
|
|
39
|
+
- Test failures caused by environment state (not code bugs)
|
|
40
|
+
|
|
41
|
+
**Workflow bottlenecks:**
|
|
42
|
+
- Steps where the agent pauses to think or read documentation
|
|
43
|
+
- Long command sequences that could be a single script
|
|
44
|
+
- Context switches between directories or tools
|
|
45
|
+
|
|
46
|
+
**Frequently-used commands:**
|
|
47
|
+
- Commands with complex flags that are typed repeatedly
|
|
48
|
+
- Commands that are always run together (candidates for chaining)
|
|
49
|
+
|
|
50
|
+
### Pattern Categories
|
|
51
|
+
|
|
52
|
+
#### Git Workflows
|
|
53
|
+
|
|
54
|
+
Common automatable git patterns:
|
|
55
|
+
|
|
56
|
+
| Pattern | Frequency Signal | Automation |
|
|
57
|
+
|---------|-----------------|------------|
|
|
58
|
+
| Branch, commit, push, create PR | Every task completion | Makefile target or script |
|
|
59
|
+
| Fetch, rebase, resolve, push | Every multi-agent sync | Pre-push hook or script |
|
|
60
|
+
| Clean up merged branches | End of sprint/batch | Shell alias or cron |
|
|
61
|
+
| Conventional commit formatting | Every commit | Git hook (commit-msg) |
|
|
62
|
+
|
|
63
|
+
#### Test Runs
|
|
64
|
+
|
|
65
|
+
| Pattern | Frequency Signal | Automation |
|
|
66
|
+
|---------|-----------------|------------|
|
|
67
|
+
| Run specific test file during TDD | Continuous during development | Watch mode configuration |
|
|
68
|
+
| Run full suite before PR | Every PR creation | Pre-push hook |
|
|
69
|
+
| Re-run failed tests after fix | Error-retry cycles | Test runner watch mode |
|
|
70
|
+
| Generate test coverage report | Every PR or release | CI pipeline step |
|
|
71
|
+
|
|
72
|
+
#### Build Commands
|
|
73
|
+
|
|
74
|
+
| Pattern | Frequency Signal | Automation |
|
|
75
|
+
|---------|-----------------|------------|
|
|
76
|
+
| Build before testing | Every test cycle | Makefile dependency |
|
|
77
|
+
| Rebuild after dependency change | After every `npm install` / `pip install` | Post-install hook |
|
|
78
|
+
| Clean build after switching branches | Every branch switch | Git post-checkout hook |
|
|
79
|
+
|
|
80
|
+
#### File Editing Patterns
|
|
81
|
+
|
|
82
|
+
| Pattern | Frequency Signal | Automation |
|
|
83
|
+
|---------|-----------------|------------|
|
|
84
|
+
| Adding boilerplate to new files | Every new file creation | File templates / generators |
|
|
85
|
+
| Updating imports after adding a module | Every module creation | Auto-import tooling |
|
|
86
|
+
| Adding entries to index/barrel files | Every new export | Code generator or hook |
|
|
87
|
+
|
|
88
|
+
### Recommendation Types
|
|
89
|
+
|
|
90
|
+
For each discovered pattern, recommend the most appropriate automation mechanism:
|
|
91
|
+
|
|
92
|
+
#### Shell Aliases
|
|
93
|
+
|
|
94
|
+
Best for: frequently-typed commands with complex flags.
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Example: common git log format
|
|
98
|
+
alias gl="git log --oneline --graph --decorate -20"
|
|
99
|
+
|
|
100
|
+
# Example: common test command
|
|
101
|
+
alias mt="make test"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**When to recommend:** Single commands used 5+ times per session, no conditional logic needed.
|
|
105
|
+
|
|
106
|
+
#### Git Hooks
|
|
107
|
+
|
|
108
|
+
Best for: quality enforcement that should happen automatically at git events.
|
|
109
|
+
|
|
110
|
+
| Hook | Trigger | Use Case |
|
|
111
|
+
|------|---------|----------|
|
|
112
|
+
| `pre-commit` | Before every commit | Lint staged files, validate frontmatter |
|
|
113
|
+
| `commit-msg` | After writing commit message | Enforce conventional commit format |
|
|
114
|
+
| `pre-push` | Before every push | Run test suite, check branch naming |
|
|
115
|
+
| `post-checkout` | After branch switch | Reinstall dependencies, clean build artifacts |
|
|
116
|
+
| `post-merge` | After merge/pull | Reinstall dependencies if lock files changed |
|
|
117
|
+
|
|
118
|
+
#### Makefile Targets
|
|
119
|
+
|
|
120
|
+
Best for: multi-step workflows that combine several commands.
|
|
121
|
+
|
|
122
|
+
```makefile
|
|
123
|
+
# Example: full release workflow
|
|
124
|
+
release: check
|
|
125
|
+
@scripts/release.sh
|
|
126
|
+
|
|
127
|
+
# Example: clean development reset
|
|
128
|
+
reset:
|
|
129
|
+
git clean -fd
|
|
130
|
+
npm install
|
|
131
|
+
make build
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**When to recommend:** 3+ commands always run together, may need conditional logic, team-wide usage.
|
|
135
|
+
|
|
136
|
+
#### Claude Code Hooks
|
|
137
|
+
|
|
138
|
+
Best for: automated behaviors tied to Claude Code events.
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"hooks": {
|
|
143
|
+
"PreToolUse": [
|
|
144
|
+
{
|
|
145
|
+
"matcher": "Bash",
|
|
146
|
+
"hook": "echo 'Running command...'"
|
|
147
|
+
}
|
|
148
|
+
]
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**When to recommend:** Behaviors specific to AI agent workflows, context injection, automated checks during agent execution.
|
|
154
|
+
|
|
155
|
+
#### Standalone Scripts
|
|
156
|
+
|
|
157
|
+
Best for: complex workflows with error handling, conditional logic, and user interaction.
|
|
158
|
+
|
|
159
|
+
**When to recommend:** Workflow has branching logic, needs error recovery, combines multiple tools, or is too complex for a Makefile target.
|
|
160
|
+
|
|
161
|
+
### Output Format
|
|
162
|
+
|
|
163
|
+
Present findings as a ranked list of automation opportunities:
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
## Automation Opportunities
|
|
167
|
+
|
|
168
|
+
### 1. Branch cleanup after task completion
|
|
169
|
+
- **Pattern:** Agent runs `git fetch --prune && git branch --merged ...` after every PR merge
|
|
170
|
+
- **Frequency:** 4x per session
|
|
171
|
+
- **Recommendation:** Add `make clean-branches` Makefile target
|
|
172
|
+
- **Time savings:** ~2 min/occurrence → 8 min/session
|
|
173
|
+
- **Implementation complexity:** Low (5 min to implement)
|
|
174
|
+
|
|
175
|
+
### 2. Pre-PR quality check
|
|
176
|
+
- **Pattern:** Agent runs `make lint && make test && git push` before every PR
|
|
177
|
+
- **Frequency:** 3x per session
|
|
178
|
+
- **Recommendation:** Add `make ready` target that chains lint + test + push
|
|
179
|
+
- **Time savings:** ~1 min/occurrence → 3 min/session
|
|
180
|
+
- **Implementation complexity:** Low (2 min to implement)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Ranking criteria:**
|
|
184
|
+
1. Frequency × time-per-occurrence (total time savings)
|
|
185
|
+
2. Error reduction potential (automating error-prone steps)
|
|
186
|
+
3. Implementation complexity (prefer quick wins)
|
|
187
|
+
|
|
188
|
+
### Session History Analysis
|
|
189
|
+
|
|
190
|
+
When analyzing session transcripts or tool call logs:
|
|
191
|
+
|
|
192
|
+
**Tool call patterns:**
|
|
193
|
+
- Count occurrences of each tool
|
|
194
|
+
- Identify sequences of tool calls that always appear together
|
|
195
|
+
- Flag tool calls that fail and are retried with modifications
|
|
196
|
+
|
|
197
|
+
**Command patterns:**
|
|
198
|
+
- Extract all Bash tool invocations
|
|
199
|
+
- Group by command prefix (`git`, `make`, `npm`, etc.)
|
|
200
|
+
- Identify commands with identical or near-identical arguments
|
|
201
|
+
|
|
202
|
+
**Error-retry cycles:**
|
|
203
|
+
- Find sequences where a command fails, the agent diagnoses, and retries
|
|
204
|
+
- If the same error type appears 3+ times across sessions, it needs a preventive automation
|
|
205
|
+
- Common cycle: lint fails → fix → re-lint → passes (automate the fix or add a pre-save hook)
|
|
206
|
+
|
|
207
|
+
**File access patterns:**
|
|
208
|
+
- Track which files are read most frequently
|
|
209
|
+
- Identify files that are always read together (candidates for a combined view)
|
|
210
|
+
- Flag files that are read but never modified (reference material — could be injected as context)
|
|
211
|
+
|
|
212
|
+
## See Also
|
|
213
|
+
|
|
214
|
+
- [dev-environment](../core/dev-environment.md) — Development environment setup
|
|
215
|
+
- [claude-md-patterns](../core/claude-md-patterns.md) — CLAUDE.md configuration patterns
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: version-strategy
|
|
3
|
+
description: Version file management across language ecosystems
|
|
4
|
+
topics: [versioning, packages, ecosystems]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Version Strategy
|
|
8
|
+
|
|
9
|
+
Expert knowledge for detecting, updating, and synchronizing version files across language ecosystems. Covers lock file management, first-version bootstrap, mismatch detection, and dry-run workflows.
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
### Version File Detection
|
|
14
|
+
|
|
15
|
+
Scan the project root for known version files: `package.json`, `pyproject.toml`, `Cargo.toml`, `.claude-plugin/plugin.json`, `pubspec.yaml`, `setup.cfg`, `version.txt`.
|
|
16
|
+
|
|
17
|
+
### Lock File Sync
|
|
18
|
+
|
|
19
|
+
After updating a version file, regenerate the associated lock file to keep them in sync. Each ecosystem has its own lock file update command.
|
|
20
|
+
|
|
21
|
+
### First-Version Bootstrap
|
|
22
|
+
|
|
23
|
+
If no version file exists, offer to create one. Suggest `0.1.0` for new projects, `1.0.0` for stable projects with existing users.
|
|
24
|
+
|
|
25
|
+
## Deep Guidance
|
|
26
|
+
|
|
27
|
+
### Detection — Extended
|
|
28
|
+
|
|
29
|
+
**Scan order and priority:**
|
|
30
|
+
|
|
31
|
+
1. `package.json` — Node.js/npm ecosystem
|
|
32
|
+
2. `pyproject.toml` — Modern Python projects (PEP 621)
|
|
33
|
+
3. `Cargo.toml` — Rust projects
|
|
34
|
+
4. `.claude-plugin/plugin.json` — Claude Code plugins
|
|
35
|
+
5. `pubspec.yaml` — Flutter/Dart projects
|
|
36
|
+
6. `setup.cfg` — Legacy Python projects
|
|
37
|
+
7. `version.txt` — Generic fallback
|
|
38
|
+
|
|
39
|
+
**Detection logic:**
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Find all version files in the project root
|
|
43
|
+
for f in package.json pyproject.toml Cargo.toml .claude-plugin/plugin.json pubspec.yaml setup.cfg version.txt; do
|
|
44
|
+
[ -f "$f" ] && echo "Found: $f"
|
|
45
|
+
done
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
A project may have multiple version files (e.g., a Claude Code plugin with both `package.json` and `.claude-plugin/plugin.json`). All detected files must be updated together.
|
|
49
|
+
|
|
50
|
+
### Update Patterns Per Ecosystem
|
|
51
|
+
|
|
52
|
+
#### Node.js (package.json)
|
|
53
|
+
|
|
54
|
+
**Version field:** `"version": "1.2.3"` at the top level of the JSON object.
|
|
55
|
+
|
|
56
|
+
**Update procedure:**
|
|
57
|
+
1. Edit `package.json` to set the new version
|
|
58
|
+
2. Regenerate the lock file: `npm install --package-lock-only`
|
|
59
|
+
3. If `yarn.lock` exists instead: `yarn install --mode update-lockfile`
|
|
60
|
+
4. Commit both `package.json` and the lock file together
|
|
61
|
+
|
|
62
|
+
**Caveat:** `npm version` exists but modifies files and creates git tags automatically — prefer manual editing for more control.
|
|
63
|
+
|
|
64
|
+
#### Rust (Cargo.toml)
|
|
65
|
+
|
|
66
|
+
**Version field:** `version = "1.2.3"` under `[package]`.
|
|
67
|
+
|
|
68
|
+
**Update procedure:**
|
|
69
|
+
1. Edit `Cargo.toml` to set the new version
|
|
70
|
+
2. Update the lock file: `cargo update -w` (workspace only, avoids updating all dependencies)
|
|
71
|
+
3. Commit both `Cargo.toml` and `Cargo.lock` together
|
|
72
|
+
|
|
73
|
+
#### Python — pyproject.toml
|
|
74
|
+
|
|
75
|
+
**Version field:** `version = "1.2.3"` under `[project]`.
|
|
76
|
+
|
|
77
|
+
**Update procedure:**
|
|
78
|
+
1. Edit `pyproject.toml` directly
|
|
79
|
+
2. No separate lock file regeneration needed (unless using `poetry` or `pip-tools`)
|
|
80
|
+
3. If using Poetry: `poetry lock --no-update` after version change
|
|
81
|
+
4. If using pip-tools: `pip-compile` to regenerate `requirements.txt`
|
|
82
|
+
|
|
83
|
+
#### Python — setup.cfg (Legacy)
|
|
84
|
+
|
|
85
|
+
**Version field:** `version = 1.2.3` under `[metadata]`.
|
|
86
|
+
|
|
87
|
+
**Update procedure:**
|
|
88
|
+
1. Edit `setup.cfg` directly
|
|
89
|
+
2. No lock file regeneration needed
|
|
90
|
+
|
|
91
|
+
#### Flutter / Dart (pubspec.yaml)
|
|
92
|
+
|
|
93
|
+
**Version field:** `version: 1.2.3+4` (the `+4` is the build number).
|
|
94
|
+
|
|
95
|
+
**Update procedure:**
|
|
96
|
+
1. Edit `pubspec.yaml` to set the new version
|
|
97
|
+
2. Run `flutter pub get` to update `pubspec.lock`
|
|
98
|
+
3. Commit both files together
|
|
99
|
+
|
|
100
|
+
#### Claude Code Plugin (plugin.json)
|
|
101
|
+
|
|
102
|
+
**Version field:** `"version": "1.2.3"` in `.claude-plugin/plugin.json`.
|
|
103
|
+
|
|
104
|
+
**Update procedure:**
|
|
105
|
+
1. Edit `.claude-plugin/plugin.json` to set the new version
|
|
106
|
+
2. No lock file needed
|
|
107
|
+
3. Commit the file
|
|
108
|
+
|
|
109
|
+
#### Generic (version.txt)
|
|
110
|
+
|
|
111
|
+
**Format:** The entire file content is the version string, e.g., `1.2.3\n`.
|
|
112
|
+
|
|
113
|
+
**Update procedure:**
|
|
114
|
+
1. Write the new version to the file: `echo "1.2.3" > version.txt`
|
|
115
|
+
2. Commit the file
|
|
116
|
+
|
|
117
|
+
### First-Version Bootstrap
|
|
118
|
+
|
|
119
|
+
When no version file is detected and a release is requested:
|
|
120
|
+
|
|
121
|
+
1. Ask which ecosystem the project targets (or infer from existing files like `src/`, `lib/`, `Cargo.toml`, etc.)
|
|
122
|
+
2. Create the appropriate version file
|
|
123
|
+
3. Set the initial version:
|
|
124
|
+
- `0.1.0` for new projects under active development
|
|
125
|
+
- `1.0.0` for projects with existing users or stable APIs
|
|
126
|
+
4. Commit the new version file with message: `chore: bootstrap version file at <version>`
|
|
127
|
+
|
|
128
|
+
**Why 0.1.0 vs 1.0.0:**
|
|
129
|
+
- `0.x.y` signals "initial development, expect breaking changes"
|
|
130
|
+
- `1.0.0` signals "stable public API, semver guarantees apply"
|
|
131
|
+
- Most projects should start at `0.1.0` and reach `1.0.0` when the API stabilizes
|
|
132
|
+
|
|
133
|
+
### Version Mismatch Detection
|
|
134
|
+
|
|
135
|
+
Before bumping, check for mismatches between the version in files and the latest git tag:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# Get version from package.json (example)
|
|
139
|
+
FILE_VERSION=$(jq -r '.version' package.json)
|
|
140
|
+
|
|
141
|
+
# Get latest git tag version
|
|
142
|
+
TAG_VERSION=$(git describe --tags --abbrev=0 2>/dev/null | sed 's/^v//')
|
|
143
|
+
|
|
144
|
+
# Compare
|
|
145
|
+
if [ "$FILE_VERSION" != "$TAG_VERSION" ]; then
|
|
146
|
+
echo "Mismatch: file says $FILE_VERSION, last tag says $TAG_VERSION"
|
|
147
|
+
fi
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**When a mismatch is found:**
|
|
151
|
+
|
|
152
|
+
| Scenario | Action |
|
|
153
|
+
|----------|--------|
|
|
154
|
+
| File version > tag version | Ask: "Release as $FILE_VERSION, or bump further?" |
|
|
155
|
+
| File version < tag version | Warning: files are behind the last release — update files first |
|
|
156
|
+
| File version = tag version | Normal case — bump from this version |
|
|
157
|
+
| No tag exists | First release — use file version as-is or suggest a version |
|
|
158
|
+
|
|
159
|
+
### Dry-Run Mode
|
|
160
|
+
|
|
161
|
+
Preview all version mutations without writing to disk:
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
[DRY RUN] Would update package.json: 1.1.0 → 1.2.0
|
|
165
|
+
[DRY RUN] Would update .claude-plugin/plugin.json: 1.1.0 → 1.2.0
|
|
166
|
+
[DRY RUN] Would regenerate package-lock.json
|
|
167
|
+
[DRY RUN] Would create git tag: v1.2.0
|
|
168
|
+
[DRY RUN] Would update CHANGELOG.md with new section
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Dry-run mode is useful for:
|
|
172
|
+
- Verifying the correct version bump before committing
|
|
173
|
+
- Reviewing which files would change
|
|
174
|
+
- Testing the release process in CI without side effects
|
|
175
|
+
|
|
176
|
+
### Multiple Version Files — Synchronization
|
|
177
|
+
|
|
178
|
+
When a project has multiple version files, all must show the same version at all times.
|
|
179
|
+
|
|
180
|
+
**Rules:**
|
|
181
|
+
- Update all detected version files in the same commit
|
|
182
|
+
- Regenerate all associated lock files in the same commit
|
|
183
|
+
- Verify consistency after updating: read back each file and confirm they match
|
|
184
|
+
- If a version file was missed, the pre-commit hook or CI should catch the mismatch
|
|
185
|
+
|
|
186
|
+
**Example commit for a multi-file project:**
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
release: v1.2.0
|
|
190
|
+
|
|
191
|
+
Updated version in:
|
|
192
|
+
- package.json (1.1.0 → 1.2.0)
|
|
193
|
+
- .claude-plugin/plugin.json (1.1.0 → 1.2.0)
|
|
194
|
+
- package-lock.json (regenerated)
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## See Also
|
|
198
|
+
|
|
199
|
+
- [release-management](./release-management.md) — Semantic versioning rules, changelog format, quality gates
|
|
200
|
+
- [git-workflow-patterns](../core/git-workflow-patterns.md) — Tagging and release workflow
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: critical-path-analysis
|
|
3
3
|
description: Tracing critical user journeys end-to-end across all specifications
|
|
4
|
-
topics: [validation, critical-path, user-journeys, end-to-end,
|
|
4
|
+
topics: [validation, critical-path, user-journeys, end-to-end, gap-analysis]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Critical Path Analysis
|
|
@@ -8,6 +8,18 @@ topics: [validation, consistency, naming, data-flow, contracts]
|
|
|
8
8
|
|
|
9
9
|
Cross-phase consistency validation ensures that artifacts produced across different pipeline phases agree with each other. Inconsistencies compound: a renamed entity in one phase propagates confusion into every downstream artifact. This document covers what to check, how to check it, and what findings look like.
|
|
10
10
|
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
- **Naming consistency**: Trace every named concept through all artifacts; flag spelling variations, abbreviations, or synonyms for the same concept.
|
|
14
|
+
- **Shared assumptions**: Verify that assumptions made in later phases (cardinality, optionality, ordering, uniqueness) are explicitly stated in earlier artifacts.
|
|
15
|
+
- **Data shape consistency**: Trace entity shapes field-by-field from domain model through schema, API, and UX; verify types, naming, and format alignment.
|
|
16
|
+
- **Interface contract matching**: Architecture component interfaces must match their concrete definitions in API contracts; parameter names, types, and error cases aligned.
|
|
17
|
+
- **Data flow completeness**: Walk each architecture data flow step-by-step verifying source/target APIs exist and data shapes match at every boundary.
|
|
18
|
+
- **Constraint propagation**: ADR constraints (technology choices, patterns, NFRs) must be reflected in all downstream artifacts.
|
|
19
|
+
- **Common patterns to watch**: Enum drift, optionality mismatch, orphaned events, ghost requirements, format divergence, soft-delete vs hard-delete differences, and pagination assumption conflicts.
|
|
20
|
+
|
|
21
|
+
## Deep Guidance
|
|
22
|
+
|
|
11
23
|
## Why Inconsistencies Happen
|
|
12
24
|
|
|
13
25
|
Each pipeline phase is authored at a different time, possibly by different agents, with evolving understanding of the project. Common causes:
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: decision-completeness
|
|
3
3
|
description: Verifying all architectural decisions are recorded, justified, and non-contradictory
|
|
4
|
-
topics: [validation, decisions,
|
|
4
|
+
topics: [validation, decisions, adr, completeness, contradictions]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Decision Completeness
|
|
8
8
|
|
|
9
9
|
Decision completeness validation ensures that every architectural and design decision made during the pipeline has been explicitly recorded in an ADR, that no decisions contradict each other, and that no deferred decisions remain unresolved before implementation begins.
|
|
10
10
|
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
- **Explicit decision extraction**: Walk every artifact and extract every technology choice, pattern selection, and constraint trade-off as a decision requiring an ADR.
|
|
14
|
+
- **Implied decision mining**: Find undocumented decisions via absence-based, convention-based, technology-stack, pattern-based, and assumption-based detection techniques.
|
|
15
|
+
- **ADR coverage verification**: Every decision needs an ADR with context, rationale, alternatives, consequences, and current status.
|
|
16
|
+
- **Contradiction detection**: Check cross-ADR, ADR-vs-artifact, and cross-artifact contradictions; group decisions by topic and compare for consistency.
|
|
17
|
+
- **Deferred decision resolution**: Search for TBD/TODO/pending markers; all must be resolved or documented as moot before implementation.
|
|
18
|
+
- **Categories checklist**: Infrastructure/platform, data, API/communication, frontend, quality, operations, and process decisions all need coverage.
|
|
19
|
+
- Prioritize missing ADRs by impact: critical (architecture, data, security), major (workflow, tooling), minor (conventions, formatting).
|
|
20
|
+
|
|
21
|
+
## Deep Guidance
|
|
22
|
+
|
|
11
23
|
## Why Decision Completeness Matters
|
|
12
24
|
|
|
13
25
|
Unrecorded decisions become tribal knowledge. When AI agents implement the system, they have no tribal knowledge — only documented decisions. Every implicit "we agreed that..." or "obviously we'd use..." that is not in an ADR is a gap that will cause agents to guess, and guesses introduce inconsistency.
|