bigpowers 2.87.4 → 2.87.5
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/.cursor/rules/align-grid.mdc +109 -0
- package/.cursor/rules/assess-impact.mdc +90 -0
- package/.cursor/rules/audit-code.mdc +183 -0
- package/.cursor/rules/audit-plan.mdc +88 -0
- package/.cursor/rules/build-epic.mdc +104 -0
- package/.cursor/rules/change-request.mdc +120 -0
- package/.cursor/rules/commit-message.mdc +139 -0
- package/.cursor/rules/compose-workflow.mdc +81 -0
- package/.cursor/rules/context7-mcp.mdc +54 -0
- package/.cursor/rules/craft-skill.mdc +195 -0
- package/.cursor/rules/deepen-architecture.mdc +259 -0
- package/.cursor/rules/define-language.mdc +79 -0
- package/.cursor/rules/define-success.mdc +11 -0
- package/.cursor/rules/delegate-task.mdc +90 -0
- package/.cursor/rules/deploy.mdc +197 -0
- package/.cursor/rules/design-interface.mdc +96 -0
- package/.cursor/rules/develop-tdd.mdc +415 -0
- package/.cursor/rules/diagnose-root.mdc +23 -0
- package/.cursor/rules/diagnose-stall.mdc +53 -0
- package/.cursor/rules/dispatch-agents.mdc +117 -0
- package/.cursor/rules/edit-document.mdc +22 -0
- package/.cursor/rules/elaborate-spec.mdc +100 -0
- package/.cursor/rules/enforce-first.mdc +44 -0
- package/.cursor/rules/evolve-skill.mdc +54 -0
- package/.cursor/rules/execute-plan.mdc +60 -0
- package/.cursor/rules/extract-design.mdc +131 -0
- package/.cursor/rules/find-way.mdc +190 -0
- package/.cursor/rules/fix-bug.mdc +66 -0
- package/.cursor/rules/gate-trace.mdc +91 -0
- package/.cursor/rules/generate-allure-report.mdc +284 -0
- package/.cursor/rules/grill-me.mdc +107 -0
- package/.cursor/rules/grill-with-docs.mdc +52 -0
- package/.cursor/rules/guard-git.mdc +230 -0
- package/.cursor/rules/harden-vps.mdc +290 -0
- package/.cursor/rules/hook-commits.mdc +93 -0
- package/.cursor/rules/inspect-quality.mdc +105 -0
- package/.cursor/rules/investigate-bug.mdc +126 -0
- package/.cursor/rules/kickoff-branch.mdc +142 -0
- package/.cursor/rules/maintain-wiki.mdc +63 -0
- package/.cursor/rules/map-codebase.mdc +70 -0
- package/.cursor/rules/migrate-spec.mdc +907 -0
- package/.cursor/rules/model-domain.mdc +231 -0
- package/.cursor/rules/orchestrate-project.mdc +173 -0
- package/.cursor/rules/organize-workspace.mdc +163 -0
- package/.cursor/rules/plan-refactor.mdc +86 -0
- package/.cursor/rules/plan-release.mdc +144 -0
- package/.cursor/rules/plan-tests.mdc +74 -0
- package/.cursor/rules/plan-work.mdc +271 -0
- package/.cursor/rules/publish-package.mdc +337 -0
- package/.cursor/rules/quick-fix.mdc +113 -0
- package/.cursor/rules/release-branch.mdc +301 -0
- package/.cursor/rules/request-review.mdc +112 -0
- package/.cursor/rules/research-first.mdc +86 -0
- package/.cursor/rules/reset-baseline.mdc +20 -0
- package/.cursor/rules/respond-review.mdc +70 -0
- package/.cursor/rules/run-benchmark.mdc +84 -0
- package/.cursor/rules/run-evals.mdc +79 -0
- package/.cursor/rules/run-planning.mdc +100 -0
- package/.cursor/rules/scope-work.mdc +62 -0
- package/.cursor/rules/search-skills.mdc +72 -0
- package/.cursor/rules/security-review.mdc +383 -0
- package/.cursor/rules/seed-conventions.mdc +311 -0
- package/.cursor/rules/session-state.mdc +145 -0
- package/.cursor/rules/setup-environment.mdc +38 -0
- package/.cursor/rules/simple-english.mdc +345 -0
- package/.cursor/rules/simulate-agents.mdc +25 -0
- package/.cursor/rules/slice-tasks.mdc +67 -0
- package/.cursor/rules/smoke-test.mdc +260 -0
- package/.cursor/rules/spike-prototype.mdc +94 -0
- package/.cursor/rules/stocktake-skills.mdc +73 -0
- package/.cursor/rules/survey-context.mdc +134 -0
- package/.cursor/rules/terse-mode.mdc +41 -0
- package/.cursor/rules/trace-requirement.mdc +68 -0
- package/.cursor/rules/using-bigpowers.mdc +110 -0
- package/.cursor/rules/validate-contracts.mdc +285 -0
- package/.cursor/rules/validate-fix.mdc +146 -0
- package/.cursor/rules/verify-work.mdc +190 -0
- package/.cursor/rules/visual-dashboard.mdc +49 -0
- package/.cursor/rules/wire-ci.mdc +380 -0
- package/.cursor/rules/wire-observability.mdc +96 -0
- package/.cursor/rules/write-document.mdc +280 -0
- package/.gemini/extensions/bigpowers/commands/prompts/align-grid.md +109 -0
- package/.gemini/extensions/bigpowers/commands/prompts/assess-impact.md +90 -0
- package/.gemini/extensions/bigpowers/commands/prompts/audit-code.md +183 -0
- package/.gemini/extensions/bigpowers/commands/prompts/audit-plan.md +88 -0
- package/.gemini/extensions/bigpowers/commands/prompts/build-epic.md +104 -0
- package/.gemini/extensions/bigpowers/commands/prompts/change-request.md +120 -0
- package/.gemini/extensions/bigpowers/commands/prompts/commit-message.md +139 -0
- package/.gemini/extensions/bigpowers/commands/prompts/compose-workflow.md +81 -0
- package/.gemini/extensions/bigpowers/commands/prompts/context7-mcp.md +54 -0
- package/.gemini/extensions/bigpowers/commands/prompts/craft-skill.md +195 -0
- package/.gemini/extensions/bigpowers/commands/prompts/deepen-architecture.md +259 -0
- package/.gemini/extensions/bigpowers/commands/prompts/define-language.md +79 -0
- package/.gemini/extensions/bigpowers/commands/prompts/define-success.md +11 -0
- package/.gemini/extensions/bigpowers/commands/prompts/delegate-task.md +90 -0
- package/.gemini/extensions/bigpowers/commands/prompts/deploy.md +197 -0
- package/.gemini/extensions/bigpowers/commands/prompts/design-interface.md +96 -0
- package/.gemini/extensions/bigpowers/commands/prompts/develop-tdd.md +415 -0
- package/.gemini/extensions/bigpowers/commands/prompts/diagnose-root.md +23 -0
- package/.gemini/extensions/bigpowers/commands/prompts/diagnose-stall.md +53 -0
- package/.gemini/extensions/bigpowers/commands/prompts/dispatch-agents.md +117 -0
- package/.gemini/extensions/bigpowers/commands/prompts/edit-document.md +22 -0
- package/.gemini/extensions/bigpowers/commands/prompts/elaborate-spec.md +100 -0
- package/.gemini/extensions/bigpowers/commands/prompts/enforce-first.md +44 -0
- package/.gemini/extensions/bigpowers/commands/prompts/evolve-skill.md +54 -0
- package/.gemini/extensions/bigpowers/commands/prompts/execute-plan.md +60 -0
- package/.gemini/extensions/bigpowers/commands/prompts/extract-design.md +131 -0
- package/.gemini/extensions/bigpowers/commands/prompts/find-way.md +190 -0
- package/.gemini/extensions/bigpowers/commands/prompts/fix-bug.md +66 -0
- package/.gemini/extensions/bigpowers/commands/prompts/gate-trace.md +91 -0
- package/.gemini/extensions/bigpowers/commands/prompts/generate-allure-report.md +284 -0
- package/.gemini/extensions/bigpowers/commands/prompts/grill-me.md +107 -0
- package/.gemini/extensions/bigpowers/commands/prompts/grill-with-docs.md +52 -0
- package/.gemini/extensions/bigpowers/commands/prompts/guard-git.md +230 -0
- package/.gemini/extensions/bigpowers/commands/prompts/harden-vps.md +290 -0
- package/.gemini/extensions/bigpowers/commands/prompts/hook-commits.md +93 -0
- package/.gemini/extensions/bigpowers/commands/prompts/inspect-quality.md +105 -0
- package/.gemini/extensions/bigpowers/commands/prompts/investigate-bug.md +126 -0
- package/.gemini/extensions/bigpowers/commands/prompts/kickoff-branch.md +142 -0
- package/.gemini/extensions/bigpowers/commands/prompts/maintain-wiki.md +63 -0
- package/.gemini/extensions/bigpowers/commands/prompts/map-codebase.md +70 -0
- package/.gemini/extensions/bigpowers/commands/prompts/migrate-spec.md +907 -0
- package/.gemini/extensions/bigpowers/commands/prompts/model-domain.md +231 -0
- package/.gemini/extensions/bigpowers/commands/prompts/orchestrate-project.md +173 -0
- package/.gemini/extensions/bigpowers/commands/prompts/organize-workspace.md +163 -0
- package/.gemini/extensions/bigpowers/commands/prompts/plan-refactor.md +86 -0
- package/.gemini/extensions/bigpowers/commands/prompts/plan-release.md +144 -0
- package/.gemini/extensions/bigpowers/commands/prompts/plan-tests.md +74 -0
- package/.gemini/extensions/bigpowers/commands/prompts/plan-work.md +271 -0
- package/.gemini/extensions/bigpowers/commands/prompts/publish-package.md +337 -0
- package/.gemini/extensions/bigpowers/commands/prompts/quick-fix.md +113 -0
- package/.gemini/extensions/bigpowers/commands/prompts/release-branch.md +301 -0
- package/.gemini/extensions/bigpowers/commands/prompts/request-review.md +112 -0
- package/.gemini/extensions/bigpowers/commands/prompts/research-first.md +86 -0
- package/.gemini/extensions/bigpowers/commands/prompts/reset-baseline.md +20 -0
- package/.gemini/extensions/bigpowers/commands/prompts/respond-review.md +70 -0
- package/.gemini/extensions/bigpowers/commands/prompts/run-benchmark.md +84 -0
- package/.gemini/extensions/bigpowers/commands/prompts/run-evals.md +79 -0
- package/.gemini/extensions/bigpowers/commands/prompts/run-planning.md +100 -0
- package/.gemini/extensions/bigpowers/commands/prompts/scope-work.md +62 -0
- package/.gemini/extensions/bigpowers/commands/prompts/search-skills.md +72 -0
- package/.gemini/extensions/bigpowers/commands/prompts/security-review.md +383 -0
- package/.gemini/extensions/bigpowers/commands/prompts/seed-conventions.md +311 -0
- package/.gemini/extensions/bigpowers/commands/prompts/session-state.md +145 -0
- package/.gemini/extensions/bigpowers/commands/prompts/setup-environment.md +38 -0
- package/.gemini/extensions/bigpowers/commands/prompts/simple-english.md +345 -0
- package/.gemini/extensions/bigpowers/commands/prompts/simulate-agents.md +25 -0
- package/.gemini/extensions/bigpowers/commands/prompts/slice-tasks.md +67 -0
- package/.gemini/extensions/bigpowers/commands/prompts/smoke-test.md +260 -0
- package/.gemini/extensions/bigpowers/commands/prompts/spike-prototype.md +94 -0
- package/.gemini/extensions/bigpowers/commands/prompts/stocktake-skills.md +73 -0
- package/.gemini/extensions/bigpowers/commands/prompts/survey-context.md +134 -0
- package/.gemini/extensions/bigpowers/commands/prompts/terse-mode.md +41 -0
- package/.gemini/extensions/bigpowers/commands/prompts/trace-requirement.md +68 -0
- package/.gemini/extensions/bigpowers/commands/prompts/using-bigpowers.md +110 -0
- package/.gemini/extensions/bigpowers/commands/prompts/validate-contracts.md +285 -0
- package/.gemini/extensions/bigpowers/commands/prompts/validate-fix.md +146 -0
- package/.gemini/extensions/bigpowers/commands/prompts/verify-work.md +190 -0
- package/.gemini/extensions/bigpowers/commands/prompts/visual-dashboard.md +49 -0
- package/.gemini/extensions/bigpowers/commands/prompts/wire-ci.md +380 -0
- package/.gemini/extensions/bigpowers/commands/prompts/wire-observability.md +96 -0
- package/.gemini/extensions/bigpowers/commands/prompts/write-document.md +280 -0
- package/.gemini/extensions/bigpowers/gemini-extension.json +16 -0
- package/.gemini/extensions/bigpowers/hooks/HOOKS.md +43 -0
- package/.gemini/extensions/bigpowers/hooks/before-tool-git-guard.sh +26 -0
- package/.gemini/extensions/bigpowers/hooks/before-tool-rtk.sh +14 -0
- package/.gemini/extensions/bigpowers/hooks/before-tool-token-mgmt.sh +19 -0
- package/.gemini/extensions/bigpowers/hooks/hooks-manifest.json +36 -0
- package/.gemini/extensions/bigpowers/hooks/run-hook.cmd +29 -0
- package/.gemini/extensions/bigpowers/hooks/session-start +48 -0
- package/.gemini/extensions/bigpowers/hooks/settings.json.example +41 -0
- package/.gemini/extensions/bigpowers/skills/align-grid/SKILL.md +111 -0
- package/.gemini/extensions/bigpowers/skills/assess-impact/SKILL.md +92 -0
- package/.gemini/extensions/bigpowers/skills/audit-code/SKILL.md +185 -0
- package/.gemini/extensions/bigpowers/skills/audit-plan/SKILL.md +90 -0
- package/.gemini/extensions/bigpowers/skills/build-epic/SKILL.md +106 -0
- package/.gemini/extensions/bigpowers/skills/change-request/SKILL.md +122 -0
- package/.gemini/extensions/bigpowers/skills/commit-message/SKILL.md +141 -0
- package/.gemini/extensions/bigpowers/skills/compose-workflow/SKILL.md +83 -0
- package/.gemini/extensions/bigpowers/skills/context7-mcp/SKILL.md +56 -0
- package/.gemini/extensions/bigpowers/skills/craft-skill/SKILL.md +197 -0
- package/.gemini/extensions/bigpowers/skills/deepen-architecture/SKILL.md +261 -0
- package/.gemini/extensions/bigpowers/skills/define-language/SKILL.md +81 -0
- package/.gemini/extensions/bigpowers/skills/define-success/SKILL.md +13 -0
- package/.gemini/extensions/bigpowers/skills/delegate-task/SKILL.md +92 -0
- package/.gemini/extensions/bigpowers/skills/deploy/SKILL.md +199 -0
- package/.gemini/extensions/bigpowers/skills/design-interface/SKILL.md +98 -0
- package/.gemini/extensions/bigpowers/skills/develop-tdd/SKILL.md +417 -0
- package/.gemini/extensions/bigpowers/skills/diagnose-root/SKILL.md +25 -0
- package/.gemini/extensions/bigpowers/skills/diagnose-stall/SKILL.md +55 -0
- package/.gemini/extensions/bigpowers/skills/dispatch-agents/SKILL.md +119 -0
- package/.gemini/extensions/bigpowers/skills/edit-document/SKILL.md +24 -0
- package/.gemini/extensions/bigpowers/skills/elaborate-spec/SKILL.md +102 -0
- package/.gemini/extensions/bigpowers/skills/enforce-first/SKILL.md +46 -0
- package/.gemini/extensions/bigpowers/skills/evolve-skill/SKILL.md +56 -0
- package/.gemini/extensions/bigpowers/skills/execute-plan/SKILL.md +62 -0
- package/.gemini/extensions/bigpowers/skills/extract-design/SKILL.md +133 -0
- package/.gemini/extensions/bigpowers/skills/find-way/SKILL.md +192 -0
- package/.gemini/extensions/bigpowers/skills/fix-bug/SKILL.md +68 -0
- package/.gemini/extensions/bigpowers/skills/gate-trace/SKILL.md +93 -0
- package/.gemini/extensions/bigpowers/skills/generate-allure-report/SKILL.md +286 -0
- package/.gemini/extensions/bigpowers/skills/grill-me/SKILL.md +109 -0
- package/.gemini/extensions/bigpowers/skills/grill-with-docs/SKILL.md +54 -0
- package/.gemini/extensions/bigpowers/skills/guard-git/SKILL.md +232 -0
- package/.gemini/extensions/bigpowers/skills/harden-vps/SKILL.md +292 -0
- package/.gemini/extensions/bigpowers/skills/hook-commits/SKILL.md +95 -0
- package/.gemini/extensions/bigpowers/skills/inspect-quality/SKILL.md +107 -0
- package/.gemini/extensions/bigpowers/skills/investigate-bug/SKILL.md +128 -0
- package/.gemini/extensions/bigpowers/skills/kickoff-branch/SKILL.md +144 -0
- package/.gemini/extensions/bigpowers/skills/maintain-wiki/SKILL.md +65 -0
- package/.gemini/extensions/bigpowers/skills/map-codebase/SKILL.md +72 -0
- package/.gemini/extensions/bigpowers/skills/migrate-spec/SKILL.md +909 -0
- package/.gemini/extensions/bigpowers/skills/model-domain/SKILL.md +233 -0
- package/.gemini/extensions/bigpowers/skills/orchestrate-project/SKILL.md +175 -0
- package/.gemini/extensions/bigpowers/skills/organize-workspace/SKILL.md +165 -0
- package/.gemini/extensions/bigpowers/skills/plan-refactor/SKILL.md +88 -0
- package/.gemini/extensions/bigpowers/skills/plan-release/SKILL.md +146 -0
- package/.gemini/extensions/bigpowers/skills/plan-tests/SKILL.md +76 -0
- package/.gemini/extensions/bigpowers/skills/plan-work/SKILL.md +273 -0
- package/.gemini/extensions/bigpowers/skills/publish-package/SKILL.md +339 -0
- package/.gemini/extensions/bigpowers/skills/quick-fix/SKILL.md +115 -0
- package/.gemini/extensions/bigpowers/skills/release-branch/SKILL.md +303 -0
- package/.gemini/extensions/bigpowers/skills/request-review/SKILL.md +114 -0
- package/.gemini/extensions/bigpowers/skills/research-first/SKILL.md +88 -0
- package/.gemini/extensions/bigpowers/skills/reset-baseline/SKILL.md +22 -0
- package/.gemini/extensions/bigpowers/skills/respond-review/SKILL.md +72 -0
- package/.gemini/extensions/bigpowers/skills/run-benchmark/SKILL.md +86 -0
- package/.gemini/extensions/bigpowers/skills/run-evals/SKILL.md +81 -0
- package/.gemini/extensions/bigpowers/skills/run-planning/SKILL.md +102 -0
- package/.gemini/extensions/bigpowers/skills/scope-work/SKILL.md +64 -0
- package/.gemini/extensions/bigpowers/skills/search-skills/SKILL.md +74 -0
- package/.gemini/extensions/bigpowers/skills/security-review/SKILL.md +385 -0
- package/.gemini/extensions/bigpowers/skills/seed-conventions/SKILL.md +313 -0
- package/.gemini/extensions/bigpowers/skills/session-state/SKILL.md +147 -0
- package/.gemini/extensions/bigpowers/skills/setup-environment/SKILL.md +40 -0
- package/.gemini/extensions/bigpowers/skills/simple-english/SKILL.md +347 -0
- package/.gemini/extensions/bigpowers/skills/simulate-agents/SKILL.md +27 -0
- package/.gemini/extensions/bigpowers/skills/slice-tasks/SKILL.md +69 -0
- package/.gemini/extensions/bigpowers/skills/smoke-test/SKILL.md +262 -0
- package/.gemini/extensions/bigpowers/skills/spike-prototype/SKILL.md +96 -0
- package/.gemini/extensions/bigpowers/skills/stocktake-skills/SKILL.md +75 -0
- package/.gemini/extensions/bigpowers/skills/survey-context/SKILL.md +136 -0
- package/.gemini/extensions/bigpowers/skills/terse-mode/SKILL.md +43 -0
- package/.gemini/extensions/bigpowers/skills/trace-requirement/SKILL.md +70 -0
- package/.gemini/extensions/bigpowers/skills/using-bigpowers/SKILL.md +112 -0
- package/.gemini/extensions/bigpowers/skills/validate-contracts/SKILL.md +287 -0
- package/.gemini/extensions/bigpowers/skills/validate-fix/SKILL.md +148 -0
- package/.gemini/extensions/bigpowers/skills/verify-work/SKILL.md +192 -0
- package/.gemini/extensions/bigpowers/skills/visual-dashboard/SKILL.md +51 -0
- package/.gemini/extensions/bigpowers/skills/wire-ci/SKILL.md +382 -0
- package/.gemini/extensions/bigpowers/skills/wire-observability/SKILL.md +98 -0
- package/.gemini/extensions/bigpowers/skills/write-document/SKILL.md +282 -0
- package/.pi/package.json +1 -1
- package/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
- package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
- package/scripts/test-install-helpers.js +31 -0
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Package registry publishing for npm, crates.io, PyPI, and Homebrew. Verifies prerequisites, runs the publish command, confirms success, and surfaces actionable error hints on failure."
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Publish Package
|
|
7
|
+
|
|
8
|
+
> **HARD GATE** — Do not attempt to publish without verifying prerequisites. Missing auth tokens, stale builds, or duplicate versions cause CI failures that are hard to debug post-push.
|
|
9
|
+
>
|
|
10
|
+
> **HARD GATE** — Always run `--dry-run` first. Package registries are append-only — a bad publish cannot be fully undone on most registries.
|
|
11
|
+
|
|
12
|
+
Publish packages to language-specific registries. Detects package type from manifest files, verifies publish prerequisites, runs the registry-specific publish command, and confirms the version appears on the registry.
|
|
13
|
+
|
|
14
|
+
## Process
|
|
15
|
+
|
|
16
|
+
### 1. Detect package type
|
|
17
|
+
|
|
18
|
+
Read the project root for manifest files to determine the package type:
|
|
19
|
+
|
|
20
|
+
| Manifest | Registry | Publish command |
|
|
21
|
+
|----------|----------|----------------|
|
|
22
|
+
| `package.json` | npm | `npm publish --access public` |
|
|
23
|
+
| `Cargo.toml` | crates.io | `cargo publish` |
|
|
24
|
+
| `setup.py` / `pyproject.toml` | PyPI | `twine upload dist/*` or `flit publish` |
|
|
25
|
+
| `Formula/<name>.rb` | Homebrew | `brew bump-formula-pr` |
|
|
26
|
+
| Multiple detected | Polyglot | Error: specify registry with `--registry <npm|crates.io|pypi|brew>` |
|
|
27
|
+
|
|
28
|
+
If no manifest is found, prompt the user to specify the type or pass `--type <npm|crates.io|pypi|brew>`.
|
|
29
|
+
|
|
30
|
+
### 2. Verify prerequisites
|
|
31
|
+
|
|
32
|
+
Before attempting any publish, run all applicable checks:
|
|
33
|
+
|
|
34
|
+
**npm (`package.json`):**
|
|
35
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
36
|
+
|
|
37
|
+
**crates.io (`Cargo.toml`):**
|
|
38
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
39
|
+
|
|
40
|
+
**PyPI (`setup.py` / `pyproject.toml`):**
|
|
41
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
42
|
+
|
|
43
|
+
### 3. Run publish
|
|
44
|
+
|
|
45
|
+
After all prerequisite checks pass, run the registry-specific command:
|
|
46
|
+
|
|
47
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
48
|
+
|
|
49
|
+
### 4. Verify publish success
|
|
50
|
+
|
|
51
|
+
After publish, confirm the version appears on the registry:
|
|
52
|
+
|
|
53
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
54
|
+
|
|
55
|
+
### 5. Error handling
|
|
56
|
+
|
|
57
|
+
On failure, surface actionable hints:
|
|
58
|
+
|
|
59
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
60
|
+
|
|
61
|
+
### 6. Dry-run mode (`--dry-run`)
|
|
62
|
+
|
|
63
|
+
Run `--dry-run` to verify all prerequisites without actually publishing:
|
|
64
|
+
|
|
65
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
66
|
+
|
|
67
|
+
### 7. Dry-run mode per registry
|
|
68
|
+
|
|
69
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
70
|
+
|
|
71
|
+
## Verify
|
|
72
|
+
|
|
73
|
+
→ verify: `test -f skills/publish-package/SKILL.md && test -f package.json`
|
|
74
|
+
→ verify: `grep -q publish-package SKILL-INDEX.md`
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
# Publish Package — Reference
|
|
79
|
+
|
|
80
|
+
## Navigation
|
|
81
|
+
|
|
82
|
+
| Lines | Section |
|
|
83
|
+
|-------|---------|
|
|
84
|
+
| 1 | Title |
|
|
85
|
+
| 3–23 | Navigation |
|
|
86
|
+
| 24–35 | Options |
|
|
87
|
+
| 36–37 | Examples |
|
|
88
|
+
| 38–51 | Publish an npm package |
|
|
89
|
+
| 52–59 | Publish a Rust crate |
|
|
90
|
+
| 60–69 | Missing token scenario |
|
|
91
|
+
| 70–80 | Integration with release-branch |
|
|
92
|
+
| 81–121 | Reference block 1 |
|
|
93
|
+
| 122–143 | Reference block 2 |
|
|
94
|
+
| 144–162 | Reference block 3 |
|
|
95
|
+
| 163–180 | Reference block 4 |
|
|
96
|
+
| 181–195 | Reference block 5 |
|
|
97
|
+
| 196–230 | Reference block 6 |
|
|
98
|
+
| 231–248 | Reference block 7 |
|
|
99
|
+
| 249–260 | Reference block 8 |
|
|
100
|
+
|
|
101
|
+
## Options
|
|
102
|
+
|
|
103
|
+
| Flag | Description |
|
|
104
|
+
|------|-------------|
|
|
105
|
+
| `--dry-run` | Verify prerequisites and show publish command without executing |
|
|
106
|
+
| `--registry <type>` | Force registry type (skip auto-detection) |
|
|
107
|
+
| `--otp <code>` | One-time password for npm 2FA |
|
|
108
|
+
| `--no-verify` | Skip prerequisite checks (use with caution) |
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Examples
|
|
114
|
+
|
|
115
|
+
### Publish an npm package
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# Verify first
|
|
119
|
+
publish-package --dry-run
|
|
120
|
+
|
|
121
|
+
# Publish
|
|
122
|
+
publish-package
|
|
123
|
+
|
|
124
|
+
# Output:
|
|
125
|
+
# [npm] Publishing my-package v0.4.0...
|
|
126
|
+
# OK: npm publish confirmed (my-package@0.4.0 on registry)
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Publish a Rust crate
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
export CARGO_REGISTRY_TOKEN=<token>
|
|
133
|
+
publish-package --dry-run
|
|
134
|
+
publish-package
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Missing token scenario
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
$ publish-package
|
|
141
|
+
FAIL: NPM_TOKEN not set. Set via: export NPM_TOKEN=<token> or add to .npmrc
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Integration with release-branch
|
|
148
|
+
|
|
149
|
+
When wired into `release-branch`, add a step after git push:
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
6a. Run publish-package to publish to package registries
|
|
153
|
+
→ verify: publish-package --dry-run && publish-package
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Reference block 1
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Check auth token exists
|
|
162
|
+
if [ -z "${NPM_TOKEN:-}" ]; then
|
|
163
|
+
if [ ! -f ~/.npmrc ] || ! grep -q "_authToken" ~/.npmrc; then
|
|
164
|
+
echo "FAIL: NPM_TOKEN not set. Set via: export NPM_TOKEN=<token> or add //registry.npmjs.org/:_authToken=<token> to .npmrc"
|
|
165
|
+
exit 1
|
|
166
|
+
fi
|
|
167
|
+
fi
|
|
168
|
+
|
|
169
|
+
# Check version not already published
|
|
170
|
+
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
|
171
|
+
CURRENT_VER=$(node -p "require('./package.json').version")
|
|
172
|
+
if npm view "$PACKAGE_NAME@$CURRENT_VER" version 2>/dev/null; then
|
|
173
|
+
echo "FAIL: Version $CURRENT_VER already published for $PACKAGE_NAME. Bump version first."
|
|
174
|
+
exit 1
|
|
175
|
+
fi
|
|
176
|
+
|
|
177
|
+
# Check build artifacts are fresh
|
|
178
|
+
if [ -d dist ] || [ -d lib ]; then
|
|
179
|
+
LATEST_BUILD=$(find dist lib 2>/dev/null -name "*.js" -o -name "*.cjs" -o -name "*.mjs" | xargs ls -t 2>/dev/null | head -1)
|
|
180
|
+
PACKAGE_MODIFIED=$(stat -f %m package.json 2>/dev/null || stat -c %Y package.json 2>/dev/null)
|
|
181
|
+
if [ -n "$LATEST_BUILD" ] && [ -n "$PACKAGE_MODIFIED" ]; then
|
|
182
|
+
BUILD_TIME=$(stat -f %m "$LATEST_BUILD" 2>/dev/null || stat -c %Y "$LATEST_BUILD" 2>/dev/null)
|
|
183
|
+
if [ "$BUILD_TIME" -lt "$PACKAGE_MODIFIED" ]; then
|
|
184
|
+
echo "WARNING: Build artifacts may be stale (package.json modified after last build). Run npm run build first."
|
|
185
|
+
fi
|
|
186
|
+
fi
|
|
187
|
+
fi
|
|
188
|
+
|
|
189
|
+
# Check CHANGELOG is updated
|
|
190
|
+
if [ -f CHANGELOG.md ]; then
|
|
191
|
+
if ! grep -q "$CURRENT_VER" CHANGELOG.md 2>/dev/null; then
|
|
192
|
+
echo "WARNING: Version $CURRENT_VER not found in CHANGELOG.md. Update changelog before publish."
|
|
193
|
+
fi
|
|
194
|
+
fi
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Reference block 2
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# Check auth token exists
|
|
203
|
+
if [ -z "${CARGO_REGISTRY_TOKEN:-}" ]; then
|
|
204
|
+
if [ ! -f ~/.cargo/config.toml ] || ! grep -q "token" ~/.cargo/config.toml; then
|
|
205
|
+
echo "FAIL: CARGO_REGISTRY_TOKEN not set. Set via: export CARGO_REGISTRY_TOKEN=<token> or add to ~/.cargo/config.toml"
|
|
206
|
+
exit 1
|
|
207
|
+
fi
|
|
208
|
+
fi
|
|
209
|
+
|
|
210
|
+
# Check version not already published
|
|
211
|
+
CRATE_NAME=$(grep '^name' Cargo.toml | head -1 | sed 's/.*"\(.*\)"/\1/')
|
|
212
|
+
CURRENT_VER=$(grep '^version' Cargo.toml | head -1 | sed 's/.*"\(.*\)"/\1/')
|
|
213
|
+
if cargo search "$CRATE_NAME" 2>/dev/null | grep -q "^${CRATE_NAME}.*\"$CURRENT_VER\""; then
|
|
214
|
+
echo "FAIL: Version $CURRENT_VER already published for $CRATE_NAME. Bump version in Cargo.toml first."
|
|
215
|
+
exit 1
|
|
216
|
+
fi
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Reference block 3
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
# Check auth token exists
|
|
225
|
+
if [ -z "${TWINE_PASSWORD:-}" ] && [ -z "${POETRY_PYPI_TOKEN_PYPI:-}" ]; then
|
|
226
|
+
if [ ! -f ~/.pypirc ]; then
|
|
227
|
+
echo "FAIL: PyPI token not configured. Set TWINE_PASSWORD or create ~/.pypirc"
|
|
228
|
+
exit 1
|
|
229
|
+
fi
|
|
230
|
+
fi
|
|
231
|
+
|
|
232
|
+
# Check for build artifacts
|
|
233
|
+
if [ ! -d dist ] || [ -z "$(ls dist/*.whl 2>/dev/null)" ]; then
|
|
234
|
+
echo "WARNING: No .whl files found in dist/. Run: python -m build"
|
|
235
|
+
fi
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Reference block 4
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
# npm
|
|
244
|
+
npm publish --access public
|
|
245
|
+
|
|
246
|
+
# crates.io
|
|
247
|
+
cargo publish
|
|
248
|
+
|
|
249
|
+
# PyPI
|
|
250
|
+
python -m twine upload dist/* # or: poetry publish
|
|
251
|
+
|
|
252
|
+
# Homebrew (opens PR, does not publish directly)
|
|
253
|
+
brew bump-formula-pr --url=<tarball-url> <formula-name>
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Reference block 5
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
# npm
|
|
262
|
+
npm view "$PACKAGE_NAME" versions --json 2>/dev/null | grep -q "\"$CURRENT_VER\"" && echo "OK: npm publish confirmed"
|
|
263
|
+
|
|
264
|
+
# crates.io
|
|
265
|
+
cargo search "$CRATE_NAME" 2>/dev/null | grep -q "^${CRATE_NAME}.*\"$CURRENT_VER\"" && echo "OK: crates.io publish confirmed"
|
|
266
|
+
|
|
267
|
+
# PyPI
|
|
268
|
+
pip index versions "$PACKAGE_NAME" 2>/dev/null | grep -q "$CURRENT_VER" && echo "OK: PyPI publish confirmed"
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Reference block 6
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
# Generic failure handler
|
|
277
|
+
if [ $? -ne 0 ]; then
|
|
278
|
+
case "$REGISTRY" in
|
|
279
|
+
npm)
|
|
280
|
+
echo "FAIL: npm publish failed."
|
|
281
|
+
echo " Common causes:"
|
|
282
|
+
echo " - NPM_TOKEN not set in secrets: add to GitHub repo secrets"
|
|
283
|
+
echo " - Version already published: bump version in package.json"
|
|
284
|
+
echo " - Two-factor auth required: use --otp=<code> flag"
|
|
285
|
+
echo " - Package scoped but not public: add --access public"
|
|
286
|
+
;;
|
|
287
|
+
crates.io)
|
|
288
|
+
echo "FAIL: cargo publish failed."
|
|
289
|
+
echo " Common causes:"
|
|
290
|
+
echo " - CARGO_REGISTRY_TOKEN not configured: see ~/.cargo/config.toml"
|
|
291
|
+
echo " - Version already published: bump version in Cargo.toml"
|
|
292
|
+
echo " - Local changes not committed: cargo publish requires clean working tree"
|
|
293
|
+
;;
|
|
294
|
+
pypi)
|
|
295
|
+
echo "FAIL: PyPI publish failed."
|
|
296
|
+
echo " Common causes:"
|
|
297
|
+
echo " - TWINE_PASSWORD not configured: set env var or ~/.pypirc"
|
|
298
|
+
echo " - Build artifacts missing: run python -m build first"
|
|
299
|
+
echo " - Version conflict: version already exists on PyPI"
|
|
300
|
+
;;
|
|
301
|
+
esac
|
|
302
|
+
exit 1
|
|
303
|
+
fi
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Reference block 7
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
# Example output
|
|
312
|
+
$ publish-package --dry-run
|
|
313
|
+
|
|
314
|
+
[DRY-RUN] Detected package type: npm
|
|
315
|
+
[DRY-RUN] Package: my-package v0.4.0
|
|
316
|
+
[DRY-RUN] Checking NPM_TOKEN... OK
|
|
317
|
+
[DRY-RUN] Checking version 0.4.0 not already published... OK
|
|
318
|
+
[DRY-RUN] Checking build artifacts... WARNING: package.json modified after build
|
|
319
|
+
[DRY-RUN] Checking CHANGELOG... OK
|
|
320
|
+
[DRY-RUN] Would run: npm publish --access public
|
|
321
|
+
[DRY-RUN] Exiting without publishing.
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Reference block 8
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
# npm dry-run
|
|
330
|
+
npm publish --access public --dry-run
|
|
331
|
+
|
|
332
|
+
# crates.io dry-run (cargo does not have a publish dry-run; use --dry-run flag for validation only)
|
|
333
|
+
cargo package --list 2>/dev/null
|
|
334
|
+
|
|
335
|
+
# PyPI dry-run
|
|
336
|
+
python -m twine upload --repository testpypi dist/* # test.pypi.org
|
|
337
|
+
```
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Streamlined fast-path for trivial data-only fixes — no TDD, no branching ceremony. Collapses 6 skills into 2 for changes that are purely data with no logic risk. Aborts with fallback to investigate-bug if guardrails trigger."
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Quick Fix
|
|
7
|
+
|
|
8
|
+
> **HARD GATE** — ALL entry criteria must pass before invoking quick-fix. If any guardrail triggers during execution, abort immediately and fall back to `investigate-bug`. Do NOT use quick-fix for logic changes, multi-file edits, or diffs > 5 lines.
|
|
9
|
+
|
|
10
|
+
Fast-track for trivial data-only fixes that do not require the full bug-fix chain.
|
|
11
|
+
|
|
12
|
+
When a bug fix is purely data — an add-missing-key, a typo correction, a config value update — the standard 6-skill chain (investigate-bug → diagnose-root → develop-tdd → kickoff-branch → verify-work → release-branch) is wasteful overhead. Quick-fix collapses it to 2 skills: **quick-fix** then **release-branch**.
|
|
13
|
+
|
|
14
|
+
## Discovered gate failures (e51s04)
|
|
15
|
+
|
|
16
|
+
A **Preflight**, **golden suite**, or **baseline red** failure discovered during unrelated work is valid quick-fix entry when the root cause is a data-only gap (missing key, typo, stale config) — **no user-reported bug required**. If guardrails abort (logic change, >1 file, >5 lines), fall back to `fix-bug` instead of narrating and continuing.
|
|
17
|
+
|
|
18
|
+
## Entry Criteria (ALL must be true)
|
|
19
|
+
|
|
20
|
+
Before invoking quick-fix, evaluate every item in this checklist:
|
|
21
|
+
|
|
22
|
+
1. **Purely data change** — adding a missing key, fixing a typo, updating a config value, correcting a constant
|
|
23
|
+
2. **No logic change** — no function signature, condition, loop, or control flow is modified
|
|
24
|
+
3. **No refactor risk** — the change does not reorganize or rename existing structures
|
|
25
|
+
4. **No API surface change** — no exported symbol, interface, or contract changes
|
|
26
|
+
5. **Verifiable with a single assertion** — one test, one curl, one grep can prove it works
|
|
27
|
+
6. **Affects ≤ 1 file**
|
|
28
|
+
7. **Affects ≤ 5 lines changed**
|
|
29
|
+
|
|
30
|
+
## Guardrails (HARD ABORT — all must pass)
|
|
31
|
+
|
|
32
|
+
If ANY guardrail triggers, **abort immediately** and suggest `investigate-bug` instead:
|
|
33
|
+
|
|
34
|
+
| Guardrail | Check |
|
|
35
|
+
|-----------|-------|
|
|
36
|
+
| **>1 file** | The fix touches more than one file |
|
|
37
|
+
| **>5 lines** | The diff exceeds 5 lines |
|
|
38
|
+
| **Logic change** | Any function signature, condition, or loop is modified |
|
|
39
|
+
| **Complex verify** | The verify command is more than one pipeline |
|
|
40
|
+
| **Test breakage** | Running `npm test` or equivalent breaks any existing test |
|
|
41
|
+
|
|
42
|
+
> **Fallback:** If any guardrail triggers, tell the user: *"This fix exceeds quick-fix guardrails. Use `investigate-bug` for the full TDD bug-fix chain instead."*
|
|
43
|
+
|
|
44
|
+
## Fast-Path Workflow
|
|
45
|
+
|
|
46
|
+
Only 2 skills needed for eligible fixes:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
quick-fix → apply change, run one-line verify, commit with fix:
|
|
50
|
+
release-branch → merge and ship (existing skill)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Skipped skills (with justification):**
|
|
54
|
+
|
|
55
|
+
| Skipped skill | Why skipped |
|
|
56
|
+
|---------------|-------------|
|
|
57
|
+
| `investigate-bug` | Root cause is obvious (data gap, not logic error) |
|
|
58
|
+
| `diagnose-root` | No isolation needed — the data point is the root cause |
|
|
59
|
+
| `develop-tdd` | No logic to test — single assertion proves correctness |
|
|
60
|
+
| `kickoff-branch` | Change is so small it does not warrant a separate worktree |
|
|
61
|
+
|
|
62
|
+
> Justification is included in the `fix:` commit body so the audit trail is preserved.
|
|
63
|
+
|
|
64
|
+
## Process
|
|
65
|
+
|
|
66
|
+
### 1. Evaluate entry criteria
|
|
67
|
+
|
|
68
|
+
Run the entry criteria checklist above. If any criterion fails → abort, suggest `investigate-bug`.
|
|
69
|
+
|
|
70
|
+
### 2. Apply the fix
|
|
71
|
+
|
|
72
|
+
Make the data change — add the missing key, fix the typo, update the value. Keep it to ≤5 lines in 1 file.
|
|
73
|
+
|
|
74
|
+
### 3. Verify
|
|
75
|
+
|
|
76
|
+
Run the single-assertion verify command. Example:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
grep -q "Bosnia" src/flags.js && echo "FIX VERIFIED" || echo "FIX FAILED"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 4. Commit
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
git add <file>
|
|
86
|
+
git commit -m "fix(<scope>): <description>"
|
|
87
|
+
git commit --amend -m "fix(<scope>): <description>
|
|
88
|
+
|
|
89
|
+
Skipped skills (justified for data-only change):
|
|
90
|
+
- investigate-bug: root cause is a data gap, not a logic error
|
|
91
|
+
- diagnose-root: the missing data point is the root cause
|
|
92
|
+
- develop-tdd: single assertion proves correctness
|
|
93
|
+
- kickoff-branch: change is too small for a separate worktree"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 5. Release
|
|
97
|
+
|
|
98
|
+
Invoke `release-branch` to merge and ship.
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
## Example
|
|
102
|
+
|
|
103
|
+
### Bosnia flag missing from FLAGS dictionary
|
|
104
|
+
|
|
105
|
+
```gherkin
|
|
106
|
+
Given a bug where FLAGS dictionary is missing entry "Bosnia"
|
|
107
|
+
And no logic depends on the missing entry (purely a data gap)
|
|
108
|
+
When the agent invokes quick-fix
|
|
109
|
+
Then the missing entry is added to the dictionary
|
|
110
|
+
And a one-line verify confirms the key exists: grep -q "Bosnia" src/flags.js
|
|
111
|
+
And a fix: commit is created with the skipped-skills rationale in the body
|
|
112
|
+
And the change is ready for release-branch
|
|
113
|
+
```
|