@imix-js/taproot
Advanced tools
+3
-2
| { | ||
| "name": "@imix-js/taproot", | ||
| "version": "0.9.0", | ||
| "version": "0.9.1", | ||
| "description": "AI-driven specs, enforced at commit time. Code without traceability doesn't merge.", | ||
@@ -32,3 +32,4 @@ "type": "module", | ||
| "typecheck": "tsc --noEmit", | ||
| "preflight": "bash scripts/preflight.sh" | ||
| "preflight": "bash scripts/preflight.sh", | ||
| "release": "bash scripts/release.sh" | ||
| }, | ||
@@ -35,0 +36,0 @@ "repository": { |
+14
-15
@@ -5,3 +5,3 @@ # Skill: release | ||
| Run the taproot maintainer's local release phase: pre-flight checks, changelog generation, version bump, commit, tag, and push. Triggers GitHub Actions CI to build, gate on approval, and publish. Not distributed to user projects. | ||
| Run the taproot maintainer's local release phase: pre-flight checks, changelog generation, then `npm run release -- <version>` to bump versions, commit, tag, and push. Triggers GitHub Actions CI to build, gate on approval, and publish. Not distributed to user projects. | ||
@@ -76,23 +76,22 @@ ## Inputs | ||
| 4. **Version bump** — update the `version` field in both `package.json` and `channels/vscode/package.json` to `<next>`. Write each file with the same formatting (2-space indent, trailing newline). Verify by re-reading both files. | ||
| 5. **Commit** — this is a **plain commit** (message `chore: release v<next>` does not match the `taproot(<scope>):` pattern). The taproot pre-commit hook classifies it as plain and runs no DoD or DoR conditions. Stage and commit: | ||
| 4. **Run the release script** — this handles version bumps, commit, tag, and push atomically: | ||
| ``` | ||
| git add package.json channels/vscode/package.json CHANGELOG.md | ||
| git commit -m "chore: release v<next>" | ||
| npm run release -- <next> | ||
| ``` | ||
| If the commit is blocked by the pre-commit hook, report the hook output verbatim and stop. Do not bypass the hook (`--no-verify`). | ||
| The script: | ||
| - Verifies `CHANGELOG.md` has an entry for `<next>` | ||
| - Bumps `version` in both `package.json` and `channels/vscode/package.json` | ||
| - Runs `taproot truth-sign` (ensures session is fresh for the hook) | ||
| - Commits `package.json`, `channels/vscode/package.json`, `CHANGELOG.md`, and `.taproot/.truth-check-session` with message `chore: release v<next>` | ||
| - Creates tag `v<next>` | ||
| - Pushes commit and tag to `origin/main` | ||
| 6. **Tag** — create the release tag: | ||
| ``` | ||
| git tag v<next> | ||
| ``` | ||
| If the script exits non-zero, it prints the failing check. Do not attempt manual fallback steps — fix the root cause and re-run. | ||
| 7. **Push** — push the commit and tag to origin: | ||
| **Push failure recovery** — if the script fails after creating the local commit and tag but before pushing: | ||
| ``` | ||
| git push origin main && git push origin v<next> | ||
| ``` | ||
| If the push fails, report: "local commit ✓ · local tag `v<next>` ✓ — push failed: `<error>`. Retry with: `git push origin main && git push origin v<next>`" and stop. | ||
| 8. Report release initiated: | ||
| 5. Report release initiated: | ||
| ``` | ||
@@ -115,3 +114,3 @@ ✓ Local phase complete. | ||
| - `package.json` version bumped to `<next>` | ||
| - `package.json` and `channels/vscode/package.json` version bumped to `<next>` | ||
| - `CHANGELOG.md` entry added for `<next>` | ||
@@ -118,0 +117,0 @@ - Release commit on `origin/main` with message `chore: release v<next>` |
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
908737
-0.01%