@tyroneross/build-loop 0.30.3
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/.agents/plugins/marketplace.json +10 -0
- package/.claude-plugin/marketplace.json +38 -0
- package/.claude-plugin/plugin.json +30 -0
- package/.codex-plugin/plugin.json +41 -0
- package/.cursor/rules/build-loop-surface.mdc +22 -0
- package/AGENTS.md +498 -0
- package/LICENSE +202 -0
- package/README.md +403 -0
- package/agents/alignment-checker.md +124 -0
- package/agents/api-assessor.md +136 -0
- package/agents/architecture-scout.md +185 -0
- package/agents/assessment-orchestrator.md +163 -0
- package/agents/build-orchestrator.md +198 -0
- package/agents/database-assessor.md +133 -0
- package/agents/design-contract-specialist.md +239 -0
- package/agents/fact-checker.md +69 -0
- package/agents/fix-critique.md +161 -0
- package/agents/frontend-assessor.md +136 -0
- package/agents/implementer.md +185 -0
- package/agents/independent-auditor.md +143 -0
- package/agents/mock-scanner.md +78 -0
- package/agents/optimize-runner.md +112 -0
- package/agents/overfitting-reviewer.md +96 -0
- package/agents/performance-assessor.md +159 -0
- package/agents/plan-critic.md +85 -0
- package/agents/promotion-reviewer.md +121 -0
- package/agents/recurring-pattern-detector.md +248 -0
- package/agents/retrospective-synthesizer.md +109 -0
- package/agents/root-cause-investigator.md +285 -0
- package/agents/scope-auditor.md +121 -0
- package/agents/security-reviewer.md +151 -0
- package/agents/self-improvement-architect.md +125 -0
- package/agents/synthesis-critic.md +99 -0
- package/agents/transcript-pattern-miner.md +165 -0
- package/agents/ui-validator.md +193 -0
- package/codex-skills/build-loop/SKILL.md +20 -0
- package/codex-skills/debug-loop/SKILL.md +18 -0
- package/codex-skills/handoff/SKILL.md +22 -0
- package/codex-skills/knowledge/SKILL.md +21 -0
- package/codex-skills/optimize/SKILL.md +18 -0
- package/codex-skills/research/SKILL.md +18 -0
- package/commands/agent-rally-point.md +301 -0
- package/commands/assess.md +41 -0
- package/commands/debug.md +20 -0
- package/commands/debugger-detail.md +34 -0
- package/commands/debugger-scan.md +15 -0
- package/commands/debugger-status.md +20 -0
- package/commands/debugger.md +32 -0
- package/commands/handoff.md +113 -0
- package/commands/knowledge-review.md +16 -0
- package/commands/optimize.md +31 -0
- package/commands/plan-verify.md +39 -0
- package/commands/promote-experiment.md +129 -0
- package/commands/research.md +22 -0
- package/commands/run.md +12 -0
- package/commands/self-review.md +51 -0
- package/commands/start-prd.md +57 -0
- package/commands/test.md +34 -0
- package/dist/src/assessment-orchestrator.d.ts +78 -0
- package/dist/src/assessment-orchestrator.d.ts.map +1 -0
- package/dist/src/assessment-orchestrator.js +304 -0
- package/dist/src/assessment-orchestrator.js.map +1 -0
- package/dist/src/audit-miner.d.ts +21 -0
- package/dist/src/audit-miner.d.ts.map +1 -0
- package/dist/src/audit-miner.js +421 -0
- package/dist/src/audit-miner.js.map +1 -0
- package/dist/src/batch-operations.d.ts +30 -0
- package/dist/src/batch-operations.d.ts.map +1 -0
- package/dist/src/batch-operations.js +339 -0
- package/dist/src/batch-operations.js.map +1 -0
- package/dist/src/config.d.ts +83 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +176 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/context-engine.d.ts +45 -0
- package/dist/src/context-engine.d.ts.map +1 -0
- package/dist/src/context-engine.js +135 -0
- package/dist/src/context-engine.js.map +1 -0
- package/dist/src/debug-wrapper.d.ts +58 -0
- package/dist/src/debug-wrapper.d.ts.map +1 -0
- package/dist/src/debug-wrapper.js +285 -0
- package/dist/src/debug-wrapper.js.map +1 -0
- package/dist/src/index.d.ts +31 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +149 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/interactive-verifier.d.ts +26 -0
- package/dist/src/interactive-verifier.d.ts.map +1 -0
- package/dist/src/interactive-verifier.js +435 -0
- package/dist/src/interactive-verifier.js.map +1 -0
- package/dist/src/lessons.d.ts +59 -0
- package/dist/src/lessons.d.ts.map +1 -0
- package/dist/src/lessons.js +172 -0
- package/dist/src/lessons.js.map +1 -0
- package/dist/src/log-reader.d.ts +39 -0
- package/dist/src/log-reader.d.ts.map +1 -0
- package/dist/src/log-reader.js +291 -0
- package/dist/src/log-reader.js.map +1 -0
- package/dist/src/logger.d.ts +59 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +328 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/parallel-retrieval.d.ts +52 -0
- package/dist/src/parallel-retrieval.d.ts.map +1 -0
- package/dist/src/parallel-retrieval.js +309 -0
- package/dist/src/parallel-retrieval.js.map +1 -0
- package/dist/src/pattern-extractor.d.ts +30 -0
- package/dist/src/pattern-extractor.d.ts.map +1 -0
- package/dist/src/pattern-extractor.js +386 -0
- package/dist/src/pattern-extractor.js.map +1 -0
- package/dist/src/result-aggregator.d.ts +44 -0
- package/dist/src/result-aggregator.d.ts.map +1 -0
- package/dist/src/result-aggregator.js +315 -0
- package/dist/src/result-aggregator.js.map +1 -0
- package/dist/src/retrieval.d.ts +139 -0
- package/dist/src/retrieval.d.ts.map +1 -0
- package/dist/src/retrieval.js +724 -0
- package/dist/src/retrieval.js.map +1 -0
- package/dist/src/setup/auto-setup.d.ts +15 -0
- package/dist/src/setup/auto-setup.d.ts.map +1 -0
- package/dist/src/setup/auto-setup.js +157 -0
- package/dist/src/setup/auto-setup.js.map +1 -0
- package/dist/src/setup/configure-hooks.d.ts +8 -0
- package/dist/src/setup/configure-hooks.d.ts.map +1 -0
- package/dist/src/setup/configure-hooks.js +16 -0
- package/dist/src/setup/configure-hooks.js.map +1 -0
- package/dist/src/setup/create-slash-commands.d.ts +8 -0
- package/dist/src/setup/create-slash-commands.d.ts.map +1 -0
- package/dist/src/setup/create-slash-commands.js +101 -0
- package/dist/src/setup/create-slash-commands.js.map +1 -0
- package/dist/src/setup/index.d.ts +8 -0
- package/dist/src/setup/index.d.ts.map +1 -0
- package/dist/src/setup/index.js +17 -0
- package/dist/src/setup/index.js.map +1 -0
- package/dist/src/setup/inject-claude-md.d.ts +10 -0
- package/dist/src/setup/inject-claude-md.d.ts.map +1 -0
- package/dist/src/setup/inject-claude-md.js +150 -0
- package/dist/src/setup/inject-claude-md.js.map +1 -0
- package/dist/src/setup/uninstall.d.ts +22 -0
- package/dist/src/setup/uninstall.d.ts.map +1 -0
- package/dist/src/setup/uninstall.js +235 -0
- package/dist/src/setup/uninstall.js.map +1 -0
- package/dist/src/storage.d.ts +192 -0
- package/dist/src/storage.d.ts.map +1 -0
- package/dist/src/storage.js +1037 -0
- package/dist/src/storage.js.map +1 -0
- package/dist/src/string-similarity.d.ts +8 -0
- package/dist/src/string-similarity.d.ts.map +1 -0
- package/dist/src/string-similarity.js +57 -0
- package/dist/src/string-similarity.js.map +1 -0
- package/dist/src/traces/adapters/browser.d.ts +69 -0
- package/dist/src/traces/adapters/browser.d.ts.map +1 -0
- package/dist/src/traces/adapters/browser.js +280 -0
- package/dist/src/traces/adapters/browser.js.map +1 -0
- package/dist/src/traces/adapters/index.d.ts +23 -0
- package/dist/src/traces/adapters/index.d.ts.map +1 -0
- package/dist/src/traces/adapters/index.js +67 -0
- package/dist/src/traces/adapters/index.js.map +1 -0
- package/dist/src/traces/adapters/langchain.d.ts +42 -0
- package/dist/src/traces/adapters/langchain.d.ts.map +1 -0
- package/dist/src/traces/adapters/langchain.js +151 -0
- package/dist/src/traces/adapters/langchain.js.map +1 -0
- package/dist/src/traces/adapters/opentelemetry.d.ts +46 -0
- package/dist/src/traces/adapters/opentelemetry.d.ts.map +1 -0
- package/dist/src/traces/adapters/opentelemetry.js +164 -0
- package/dist/src/traces/adapters/opentelemetry.js.map +1 -0
- package/dist/src/traces/adapters/sentry.d.ts +58 -0
- package/dist/src/traces/adapters/sentry.d.ts.map +1 -0
- package/dist/src/traces/adapters/sentry.js +212 -0
- package/dist/src/traces/adapters/sentry.js.map +1 -0
- package/dist/src/traces/index.d.ts +10 -0
- package/dist/src/traces/index.d.ts.map +1 -0
- package/dist/src/traces/index.js +45 -0
- package/dist/src/traces/index.js.map +1 -0
- package/dist/src/traces/storage.d.ts +78 -0
- package/dist/src/traces/storage.d.ts.map +1 -0
- package/dist/src/traces/storage.js +399 -0
- package/dist/src/traces/storage.js.map +1 -0
- package/dist/src/traces/summarizer.d.ts +83 -0
- package/dist/src/traces/summarizer.d.ts.map +1 -0
- package/dist/src/traces/summarizer.js +247 -0
- package/dist/src/traces/summarizer.js.map +1 -0
- package/dist/src/traces/types.d.ts +365 -0
- package/dist/src/traces/types.d.ts.map +1 -0
- package/dist/src/traces/types.js +14 -0
- package/dist/src/traces/types.js.map +1 -0
- package/dist/src/types.d.ts +495 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +27 -0
- package/dist/src/types.js.map +1 -0
- package/docs/agent-surface-policy.md +45 -0
- package/docs/memory-setup.md +226 -0
- package/hooks/_arch_scan_bg.py +88 -0
- package/hooks/_plugin_drift_check_bg.py +85 -0
- package/hooks/_session_start_lib.sh +42 -0
- package/hooks/git/pre-push +141 -0
- package/hooks/hooks.json +126 -0
- package/hooks/post-commit +30 -0
- package/hooks/pre-commit +29 -0
- package/hooks/pre-edit-apppulse.sh +6 -0
- package/hooks/pre-edit-architecture.sh +106 -0
- package/hooks/pre-edit-rally-point.sh +92 -0
- package/hooks/session-start-apppulse.sh +6 -0
- package/hooks/session-start-architecture.sh +10 -0
- package/hooks/session-start-git-hooks.sh +12 -0
- package/hooks/session-start-plugin-drift.sh +27 -0
- package/hooks/session-start-rally-point.sh +44 -0
- package/hooks/session-start-retrieval.sh +24 -0
- package/hooks/session-start-worktree-gc.sh +105 -0
- package/hooks/test_apppulse_hooks.sh +6 -0
- package/hooks/test_rally_point_hooks.sh +388 -0
- package/hooks/test_sec008_hooks.sh +66 -0
- package/package.json +111 -0
- package/scripts/README.md +301 -0
- package/scripts/_db_url.py +61 -0
- package/scripts/_paths.py +445 -0
- package/scripts/blm.py +162 -0
- package/scripts/blm_api.py +263 -0
- package/scripts/check_cache_sync.py +490 -0
- package/scripts/embed_backend.py +475 -0
- package/scripts/install_memory.py +556 -0
- package/scripts/lessons_index/__init__.py +77 -0
- package/scripts/lessons_index/__main__.py +135 -0
- package/scripts/lessons_index/ingest.py +288 -0
- package/scripts/lessons_index/query.py +285 -0
- package/scripts/lessons_index/schema.py +114 -0
- package/scripts/memory_context/__init__.py +610 -0
- package/scripts/memory_graph/__init__.py +393 -0
- package/scripts/project_resolver.py +172 -0
- package/scripts/prune_codex_plugin_cache.py +23 -0
- package/scripts/prune_plugin_cache.py +359 -0
- package/scripts/semantic_index/__init__.py +482 -0
- package/scripts/semantic_index/_bench_hybrid.py +175 -0
- package/scripts/semantic_index/backfill.py +263 -0
- package/scripts/semantic_index/hybrid.py +174 -0
- package/scripts/semantic_index/test_backfill.py +292 -0
- package/scripts/semantic_index/test_hybrid.py +541 -0
- package/scripts/sync_navgator_lessons.py +666 -0
- package/scripts/sync_plugin_cache.py +388 -0
- package/skills/agent-rally-point/SKILL.md +165 -0
- package/skills/agent-rally-watcher/SKILL.md +83 -0
- package/skills/api-registry-bridge/SKILL.md +59 -0
- package/skills/architecture/dead/SKILL.md +56 -0
- package/skills/architecture/impact/SKILL.md +88 -0
- package/skills/architecture/review/SKILL.md +227 -0
- package/skills/architecture/rules/SKILL.md +72 -0
- package/skills/architecture/scan/SKILL.md +79 -0
- package/skills/architecture/trace/SKILL.md +65 -0
- package/skills/attribution-standard/SKILL.md +122 -0
- package/skills/authentication/SKILL.md +81 -0
- package/skills/authentication/references/better-auth-magic-link.md +135 -0
- package/skills/authentication/references/better-auth-setup.md +224 -0
- package/skills/authentication/references/google-calendar-sync.md +278 -0
- package/skills/authentication/references/google-cloud-console.md +159 -0
- package/skills/authentication/references/google-geocoding-directions.md +126 -0
- package/skills/authentication/references/google-lessons-example-web-app.md +177 -0
- package/skills/authentication/references/google-maps.md +162 -0
- package/skills/authentication/references/google-oauth-setup.md +343 -0
- package/skills/authentication/references/google-places.md +173 -0
- package/skills/authentication/references/lessons-example-web-app-better-auth.md +126 -0
- package/skills/authentication/references/resend-email.md +227 -0
- package/skills/authentication/references/resend-otp-magic-link.md +153 -0
- package/skills/authentication/references/supabase-auth.md +172 -0
- package/skills/auto-decision-capture/SKILL.md +419 -0
- package/skills/build-loop/SKILL.md +516 -0
- package/skills/build-loop/detect-plugins.mjs +82 -0
- package/skills/build-loop/eval-guide.md +65 -0
- package/skills/build-loop/fallbacks.md +549 -0
- package/skills/build-loop/phases/fact-check.md +42 -0
- package/skills/build-loop/phases/ui-validation.md +267 -0
- package/skills/build-loop/references/apple-native-planning.md +439 -0
- package/skills/build-loop/references/capability-routing.md +181 -0
- package/skills/build-loop/references/codex-subagents.md +98 -0
- package/skills/build-loop/references/coordination.md +161 -0
- package/skills/build-loop/references/correction-aware-capture.md +177 -0
- package/skills/build-loop/references/independent-auditor.md +72 -0
- package/skills/build-loop/references/intent-capability-pack.md +170 -0
- package/skills/build-loop/references/intent-exploration-prompts.md +96 -0
- package/skills/build-loop/references/leadership.md +72 -0
- package/skills/build-loop/references/memory.md +284 -0
- package/skills/build-loop/references/modular-systems-pack.md +96 -0
- package/skills/build-loop/references/output-style.md +129 -0
- package/skills/build-loop/references/pay-it-forward-arch.md +98 -0
- package/skills/build-loop/references/phase-1-assess.md +218 -0
- package/skills/build-loop/references/phase-2-plan.md +77 -0
- package/skills/build-loop/references/phase-3-execute.md +47 -0
- package/skills/build-loop/references/phase-4-review.md +310 -0
- package/skills/build-loop/references/phase-5-iterate.md +71 -0
- package/skills/build-loop/references/phase-6-learn.md +56 -0
- package/skills/build-loop/references/recent-design-structures.md +274 -0
- package/skills/build-loop/references/refactor-history/ASSESSMENT.md +85 -0
- package/skills/build-loop/references/refactor-history/STANDALONE_TEST_RUN.md +149 -0
- package/skills/build-loop/references/refactor-history/scenarios/01-simple-bugfix.md +32 -0
- package/skills/build-loop/references/refactor-history/scenarios/02-ui-build-with-iteration.md +48 -0
- package/skills/build-loop/references/refactor-history/scenarios/03-multi-failure-escalation.md +60 -0
- package/skills/build-loop/references/refactor-history/scenarios/04-ui-build-ibr-absent.md +51 -0
- package/skills/build-loop/references/refactor-history/scenarios/05-refactor-navgator-absent.md +71 -0
- package/skills/build-loop/references/refactor-history/scenarios/06-recurring-bug-debugger-absent.md +52 -0
- package/skills/build-loop/references/refactor-history/trace-comparison.md +202 -0
- package/skills/build-loop/references/self-recursive-dev.md +77 -0
- package/skills/build-loop/references/self-review.md +232 -0
- package/skills/build-loop/references/ui-io-contract.md +116 -0
- package/skills/build-loop/scanners/audit-design-rules.mjs +476 -0
- package/skills/build-loop/scanners/require-visual-evidence.mjs +239 -0
- package/skills/build-loop/templates/backlog-item.md +35 -0
- package/skills/build-loop/templates/codex-worker-prompt.md +89 -0
- package/skills/build-loop/templates/ui-subagent-prompt.md +179 -0
- package/skills/build-loop/templates/ux-fix-plan.md +40 -0
- package/skills/building-with-deepagents/SKILL.md +195 -0
- package/skills/building-with-deepagents/references/anti-patterns.md +141 -0
- package/skills/building-with-deepagents/references/api-quick-reference.md +184 -0
- package/skills/capabilities/SKILL.md +91 -0
- package/skills/debug-loop/SKILL.md +278 -0
- package/skills/debug-loop/references/convergence-rules.md +145 -0
- package/skills/debug-loop/references/swiftui-macos-clunky-ui-debugger.html +823 -0
- package/skills/debugging/assess/SKILL.md +111 -0
- package/skills/debugging/debug-loop/SKILL.md +231 -0
- package/skills/debugging/memory/SKILL.md +147 -0
- package/skills/debugging/store/SKILL.md +153 -0
- package/skills/debugging-memory/SKILL.md +440 -0
- package/skills/debugging-memory/examples/incident-example.json +67 -0
- package/skills/debugging-memory/references/incident-documentation.md +280 -0
- package/skills/debugging-memory/references/ios-notification-alarm-playbook.md +300 -0
- package/skills/debugging-memory/references/pattern-extraction.md +163 -0
- package/skills/debugging-memory/references/subagent-integration.md +312 -0
- package/skills/defenseclaw-bridge/SKILL.md +156 -0
- package/skills/defenseclaw-bridge/references/dc-config-mapping.md +162 -0
- package/skills/defenseclaw-bridge/references/output-format.md +108 -0
- package/skills/handoff/SKILL.md +94 -0
- package/skills/ibr-bridge/SKILL.md +68 -0
- package/skills/knowledge/SKILL.md +127 -0
- package/skills/knowledge/references/recall-integration.md +83 -0
- package/skills/knowledge/templates/madr-minimal.md +56 -0
- package/skills/knowledge-review/SKILL.md +112 -0
- package/skills/logging-tracer/SKILL.md +202 -0
- package/skills/logging-tracer/references/log-analysis.md +128 -0
- package/skills/logging-tracer/references/stack-templates.md +274 -0
- package/skills/logging-tracer-bridge/SKILL.md +70 -0
- package/skills/mcp-builder/SKILL.md +278 -0
- package/skills/mcp-builder/references/mcp-security.md +106 -0
- package/skills/model-tiering/SKILL.md +216 -0
- package/skills/native-ax-driver/SKILL.md +220 -0
- package/skills/native-ax-driver/scripts/layout_fill.py +222 -0
- package/skills/native-ax-driver/scripts/native_driver.py +495 -0
- package/skills/native-ax-driver/swift/bl-ax-driver/Package.swift +20 -0
- package/skills/native-ax-driver/swift/bl-ax-driver/Sources/main.swift +542 -0
- package/skills/optimize/SKILL.md +202 -0
- package/skills/optimize/profiles.md +61 -0
- package/skills/plan-verify/SKILL.md +115 -0
- package/skills/plan-verify/test-fixtures/example-app-v20-findings.json +27 -0
- package/skills/plan-verify/test-fixtures/example-app-v20.md +42 -0
- package/skills/plan-verify/test-fixtures/example-app-v22-findings.json +15 -0
- package/skills/plan-verify/test-fixtures/example-app-v22.md +1608 -0
- package/skills/plan-verify/test-fixtures/unrelated-good-plan-findings.json +15 -0
- package/skills/plan-verify/test-fixtures/unrelated-good-plan.md +55 -0
- package/skills/plugin-builder/SKILL.md +329 -0
- package/skills/plugin-builder/references/authoritative-sources.md +104 -0
- package/skills/plugin-builder/references/build-loop-phase-guidance.md +94 -0
- package/skills/plugin-builder/references/components-guide.md +221 -0
- package/skills/plugin-builder/references/distribution.md +317 -0
- package/skills/plugin-builder/references/dual-host-claude-codex.md +220 -0
- package/skills/plugin-builder/references/hooks-reference.md +210 -0
- package/skills/plugin-builder/references/manifest-schema.md +111 -0
- package/skills/plugin-builder/references/plugin-hygiene-lessons.md +307 -0
- package/skills/plugin-tests/SKILL.md +94 -0
- package/skills/prd-bridge/SKILL.md +135 -0
- package/skills/research/SKILL.md +80 -0
- package/skills/security-methodology/SKILL.md +105 -0
- package/skills/security-methodology/references/cross-source-matrix.md +77 -0
- package/skills/security-methodology/references/mitre-atlas-starter.md +83 -0
- package/skills/security-methodology/references/nist-600-1-mapping.md +119 -0
- package/skills/security-methodology/references/owasp-agentic-top-10.md +157 -0
- package/skills/security-methodology/references/owasp-llm-top-10.md +144 -0
- package/skills/security-methodology/references/owasp-web-top-10.md +65 -0
- package/skills/self-improve/SKILL.md +298 -0
- package/skills/spec-writing/SKILL.md +548 -0
- package/skills/spec-writing/scripts/check_checklist.py +478 -0
- package/skills/sync-skills/SKILL.md +132 -0
- package/skills/telemetry/SKILL.md +66 -0
- package/skills/ui-design/SKILL.md +75 -0
- package/skills/ui-design/references/design-patterns-multi.md +165 -0
- package/skills/ui-design/references/design-preferences-from-owned-apps.md +150 -0
- package/skills/ui-design/references/evidence-capture-policy.md +55 -0
- package/skills/ui-design/references/ui-guidance-sources.md +330 -0
- package/skills/ui-design/references/universal-design-principles.alt.md +182 -0
- package/skills/ui-design/references/universal-design-principles.md +419 -0
- package/templates/memory/MEMORY.md.template +55 -0
- package/templates/memory/constitution.md.template +64 -0
- package/templates/memory/manifest.json +47 -0
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
2
|
+
|
|
3
|
+
# Plugin Components Guide
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
| Component | Location | File format | Auto-discovered |
|
|
8
|
+
|-----------|----------|-------------|-----------------|
|
|
9
|
+
| Skills | `skills/` | Subdirs with `SKILL.md` | Yes |
|
|
10
|
+
| Commands | `commands/` | `*.md` files | Yes |
|
|
11
|
+
| Agents | `agents/` | `*.md` files | Yes |
|
|
12
|
+
| Hooks | `hooks/hooks.json` | JSON | Referenced in manifest |
|
|
13
|
+
| MCP Servers | `.mcp.json` | JSON | Referenced in manifest |
|
|
14
|
+
| LSP Servers | `.lsp.json` | JSON | Referenced in manifest |
|
|
15
|
+
| Settings | `settings.json` | JSON | Auto-loaded |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Skills
|
|
20
|
+
|
|
21
|
+
Skills are the recommended way to add capabilities. Each skill is a directory containing a `SKILL.md`.
|
|
22
|
+
|
|
23
|
+
### Structure
|
|
24
|
+
```
|
|
25
|
+
skills/
|
|
26
|
+
├── code-review/
|
|
27
|
+
│ ├── SKILL.md
|
|
28
|
+
│ ├── references/
|
|
29
|
+
│ │ └── patterns.md
|
|
30
|
+
│ └── scripts/
|
|
31
|
+
│ └── validate.sh
|
|
32
|
+
└── deploy/
|
|
33
|
+
└── SKILL.md
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### SKILL.md Format
|
|
37
|
+
```yaml
|
|
38
|
+
---
|
|
39
|
+
name: code-review
|
|
40
|
+
description: Reviews code for best practices and potential issues.
|
|
41
|
+
Use when reviewing code, checking PRs, or analyzing code quality.
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
When reviewing code, check for:
|
|
45
|
+
1. Code organization and structure
|
|
46
|
+
2. Error handling
|
|
47
|
+
3. Security concerns
|
|
48
|
+
4. Test coverage
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Key Points
|
|
52
|
+
- Folder name becomes skill name, prefixed with plugin namespace
|
|
53
|
+
- Auto-discovered from `skills/` directory
|
|
54
|
+
- Can include supporting files (references/, scripts/, assets/)
|
|
55
|
+
- Use the `skill-builder` skill for detailed SKILL.md guidance
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Commands
|
|
60
|
+
|
|
61
|
+
Simple markdown files that create slash commands. Legacy approach — prefer skills for new development.
|
|
62
|
+
|
|
63
|
+
### Structure
|
|
64
|
+
```
|
|
65
|
+
commands/
|
|
66
|
+
├── status.md
|
|
67
|
+
└── logs.md
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Format
|
|
71
|
+
```markdown
|
|
72
|
+
---
|
|
73
|
+
description: Show project status
|
|
74
|
+
disable-model-invocation: true
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
Check the current project status:
|
|
78
|
+
1. Run git status
|
|
79
|
+
2. Check for pending changes
|
|
80
|
+
3. Report any issues
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Key Points
|
|
84
|
+
- File name becomes command name (e.g., `status.md` → `/plugin-name:status`)
|
|
85
|
+
- Same frontmatter fields as skills
|
|
86
|
+
- No supporting files — everything in one markdown file
|
|
87
|
+
- Skills take precedence if both share the same name
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Agents
|
|
92
|
+
|
|
93
|
+
Specialized subagents Claude can invoke for specific tasks.
|
|
94
|
+
|
|
95
|
+
### Structure
|
|
96
|
+
```
|
|
97
|
+
agents/
|
|
98
|
+
├── security-reviewer.md
|
|
99
|
+
├── performance-tester.md
|
|
100
|
+
└── compliance-checker.md
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Format
|
|
104
|
+
```markdown
|
|
105
|
+
---
|
|
106
|
+
name: security-reviewer
|
|
107
|
+
description: Reviews code for security vulnerabilities and OWASP top 10 issues.
|
|
108
|
+
Invoke when the user asks to review security, check for vulnerabilities,
|
|
109
|
+
or audit code safety.
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
# Security Reviewer Agent
|
|
113
|
+
|
|
114
|
+
Analyze code for security issues including:
|
|
115
|
+
- SQL injection
|
|
116
|
+
- XSS vulnerabilities
|
|
117
|
+
- Authentication flaws
|
|
118
|
+
- Authorization bypasses
|
|
119
|
+
- Sensitive data exposure
|
|
120
|
+
|
|
121
|
+
For each issue found, provide:
|
|
122
|
+
1. Severity (Critical/High/Medium/Low)
|
|
123
|
+
2. Location (file:line)
|
|
124
|
+
3. Description of the vulnerability
|
|
125
|
+
4. Recommended fix with code example
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Key Points
|
|
129
|
+
- Appear in `/agents` interface
|
|
130
|
+
- Claude invokes automatically based on task context
|
|
131
|
+
- Can also be invoked manually by users
|
|
132
|
+
- The markdown body becomes the agent's system prompt
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## MCP Servers
|
|
137
|
+
|
|
138
|
+
Connect Claude to external tools and services.
|
|
139
|
+
|
|
140
|
+
### Configuration (`.mcp.json`)
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"mcpServers": {
|
|
144
|
+
"my-database": {
|
|
145
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
|
|
146
|
+
"args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
|
|
147
|
+
"env": {
|
|
148
|
+
"DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"external-api": {
|
|
152
|
+
"command": "npx",
|
|
153
|
+
"args": ["@company/mcp-server", "--plugin-mode"],
|
|
154
|
+
"cwd": "${CLAUDE_PLUGIN_ROOT}"
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Key Points
|
|
161
|
+
- Start automatically when plugin is enabled
|
|
162
|
+
- Tools appear as standard MCP tools in Claude's toolkit
|
|
163
|
+
- Always use `${CLAUDE_PLUGIN_ROOT}` for paths
|
|
164
|
+
- Can be configured independently of user MCP servers
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## LSP Servers
|
|
169
|
+
|
|
170
|
+
Give Claude real-time code intelligence (diagnostics, go to definition, find references).
|
|
171
|
+
|
|
172
|
+
### Configuration (`.lsp.json`)
|
|
173
|
+
```json
|
|
174
|
+
{
|
|
175
|
+
"go": {
|
|
176
|
+
"command": "gopls",
|
|
177
|
+
"args": ["serve"],
|
|
178
|
+
"extensionToLanguage": {
|
|
179
|
+
".go": "go"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Required Fields
|
|
186
|
+
| Field | Description |
|
|
187
|
+
|-------|-------------|
|
|
188
|
+
| `command` | LSP binary to execute (must be in PATH) |
|
|
189
|
+
| `extensionToLanguage` | Maps file extensions to language identifiers |
|
|
190
|
+
|
|
191
|
+
### Optional Fields
|
|
192
|
+
| Field | Description |
|
|
193
|
+
|-------|-------------|
|
|
194
|
+
| `args` | Command-line arguments |
|
|
195
|
+
| `transport` | `stdio` (default) or `socket` |
|
|
196
|
+
| `env` | Environment variables |
|
|
197
|
+
| `initializationOptions` | Server initialization options |
|
|
198
|
+
| `settings` | Workspace settings |
|
|
199
|
+
| `restartOnCrash` | Auto-restart on crash |
|
|
200
|
+
| `maxRestarts` | Maximum restart attempts |
|
|
201
|
+
|
|
202
|
+
### Key Points
|
|
203
|
+
- Users must install the language server binary separately
|
|
204
|
+
- For common languages, install pre-built LSP plugins from official marketplace
|
|
205
|
+
- Create custom LSP plugins only for languages not covered
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Default Settings (`settings.json`)
|
|
210
|
+
|
|
211
|
+
Apply default configuration when the plugin is enabled.
|
|
212
|
+
|
|
213
|
+
```json
|
|
214
|
+
{
|
|
215
|
+
"agent": "security-reviewer"
|
|
216
|
+
}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Currently only the `agent` key is supported. Setting `agent` activates one of the plugin's custom agents as the main thread, applying its system prompt, tool restrictions, and model.
|
|
220
|
+
|
|
221
|
+
`settings.json` takes priority over `settings` declared in `plugin.json`. Unknown keys are silently ignored.
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
2
|
+
|
|
3
|
+
# Plugin Distribution Guide
|
|
4
|
+
|
|
5
|
+
## Distribution Methods
|
|
6
|
+
|
|
7
|
+
### 1. Local Testing (--plugin-dir)
|
|
8
|
+
For development and testing:
|
|
9
|
+
```bash
|
|
10
|
+
claude --plugin-dir ./my-plugin
|
|
11
|
+
```
|
|
12
|
+
Plugins are used in-place, no caching. Changes picked up on restart.
|
|
13
|
+
|
|
14
|
+
### 2. GitHub Repository
|
|
15
|
+
Host your plugin as a public (or private) repo:
|
|
16
|
+
- Include a README.md at repo root (NOT inside skill folders)
|
|
17
|
+
- Add installation instructions
|
|
18
|
+
- Include example usage and screenshots
|
|
19
|
+
- Use semantic versioning with tags
|
|
20
|
+
|
|
21
|
+
### 3. Plugin Marketplace
|
|
22
|
+
Create a marketplace for organized distribution:
|
|
23
|
+
|
|
24
|
+
**Marketplace structure:**
|
|
25
|
+
```
|
|
26
|
+
my-marketplace/
|
|
27
|
+
├── marketplace.json # Registry of available plugins
|
|
28
|
+
├── plugins/
|
|
29
|
+
│ ├── formatter/ # Plugin directories
|
|
30
|
+
│ │ ├── .claude-plugin/
|
|
31
|
+
│ │ │ └── plugin.json
|
|
32
|
+
│ │ └── ...
|
|
33
|
+
│ └── linter/
|
|
34
|
+
│ └── ...
|
|
35
|
+
└── README.md
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**marketplace.json:**
|
|
39
|
+
```json
|
|
40
|
+
{
|
|
41
|
+
"name": "My Team Marketplace",
|
|
42
|
+
"version": "1.0.0",
|
|
43
|
+
"plugins": [
|
|
44
|
+
{
|
|
45
|
+
"name": "formatter",
|
|
46
|
+
"description": "Code formatting tools",
|
|
47
|
+
"version": "1.2.0",
|
|
48
|
+
"source": "./plugins/formatter"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 4. Official Anthropic Marketplace
|
|
55
|
+
Submit via in-app forms:
|
|
56
|
+
- Claude.ai: claude.ai/settings/plugins/submit
|
|
57
|
+
- Console: platform.claude.com/plugins/submit
|
|
58
|
+
|
|
59
|
+
## Installation Commands
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Install to user scope (default)
|
|
63
|
+
claude plugin install formatter@my-marketplace
|
|
64
|
+
|
|
65
|
+
# Install to project scope (shared with team)
|
|
66
|
+
claude plugin install formatter@my-marketplace --scope project
|
|
67
|
+
|
|
68
|
+
# Install to local scope (gitignored)
|
|
69
|
+
claude plugin install formatter@my-marketplace --scope local
|
|
70
|
+
|
|
71
|
+
# Uninstall
|
|
72
|
+
claude plugin uninstall formatter@my-marketplace
|
|
73
|
+
|
|
74
|
+
# Enable/disable without uninstalling
|
|
75
|
+
claude plugin enable formatter@my-marketplace
|
|
76
|
+
claude plugin disable formatter@my-marketplace
|
|
77
|
+
|
|
78
|
+
# Update to latest version
|
|
79
|
+
claude plugin update formatter@my-marketplace
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Version Management
|
|
83
|
+
|
|
84
|
+
**Format:** `MAJOR.MINOR.PATCH`
|
|
85
|
+
|
|
86
|
+
**Rules:**
|
|
87
|
+
- Start at `1.0.0` for first stable release
|
|
88
|
+
- Bump version in `plugin.json` before distributing changes
|
|
89
|
+
- Document changes in `CHANGELOG.md`
|
|
90
|
+
- Pre-release: `2.0.0-beta.1`
|
|
91
|
+
|
|
92
|
+
**Critical:** Claude Code uses the version to determine whether to update. If you change code but don't bump the version, existing users won't see changes due to caching.
|
|
93
|
+
|
|
94
|
+
Version can be set in either `plugin.json` or `marketplace.json`. If both are set, `plugin.json` takes priority.
|
|
95
|
+
|
|
96
|
+
## Team Marketplace Setup
|
|
97
|
+
|
|
98
|
+
For team-internal distribution:
|
|
99
|
+
|
|
100
|
+
1. Create a Git repository with `marketplace.json`
|
|
101
|
+
2. Add plugins as subdirectories
|
|
102
|
+
3. Configure in project `.claude/settings.json`:
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"pluginMarketplaces": [
|
|
106
|
+
"https://github.com/your-org/claude-plugins"
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
4. Team members can install via `/plugin` interface
|
|
111
|
+
|
|
112
|
+
## Plugin Caching Behavior
|
|
113
|
+
|
|
114
|
+
**Marketplace plugins** are copied to `~/.claude/plugins/cache`:
|
|
115
|
+
- External files (`../shared/`) won't be accessible
|
|
116
|
+
- Symlinks are followed during copy
|
|
117
|
+
- Changes require version bump to propagate
|
|
118
|
+
|
|
119
|
+
**--plugin-dir plugins** are used in-place:
|
|
120
|
+
- Changes take effect on restart
|
|
121
|
+
- No caching involved
|
|
122
|
+
- Good for development
|
|
123
|
+
|
|
124
|
+
## npm Package Publishing
|
|
125
|
+
|
|
126
|
+
Use this checklist when a plugin also ships as an npm package. Keep npmjs and
|
|
127
|
+
GitHub Packages as separate release surfaces; a pass on one registry does not
|
|
128
|
+
prove the other one shipped. For the build-loop-wide package standard, also
|
|
129
|
+
load `../../../references/npm-package-publishing.md`.
|
|
130
|
+
|
|
131
|
+
### npmjs Release Standard
|
|
132
|
+
|
|
133
|
+
Every npmjs package publish uses provenance. Preferred path: trusted publishing
|
|
134
|
+
with OIDC, using explicit `npm publish --provenance` without a stored npm token.
|
|
135
|
+
Fallback path: a scoped npm access token plus `npm publish --provenance`. Do not add or edit an
|
|
136
|
+
npmjs publish workflow that omits provenance unless the user explicitly accepts
|
|
137
|
+
that exception.
|
|
138
|
+
If an npm token is pasted into chat, logs, docs, or shell history, treat it as
|
|
139
|
+
compromised. Do not use it for publishing; revoke it and return to the Trusted
|
|
140
|
+
Publisher path.
|
|
141
|
+
|
|
142
|
+
Use npm CLI v11 command docs as the command reference for release work. The
|
|
143
|
+
standard command set is:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
npm whoami --registry=https://registry.npmjs.org
|
|
147
|
+
npm view @scope/package version dist-tags --registry=https://registry.npmjs.org --json
|
|
148
|
+
npx -y npm@11 pack --dry-run --json --registry=https://registry.npmjs.org
|
|
149
|
+
npm publish --dry-run --provenance --access public --registry=https://registry.npmjs.org
|
|
150
|
+
npm publish --provenance --access public --registry=https://registry.npmjs.org
|
|
151
|
+
npm token list
|
|
152
|
+
npm audit signatures
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Registry Rules
|
|
156
|
+
|
|
157
|
+
- Public npmjs publishes must target `https://registry.npmjs.org`. If
|
|
158
|
+
`package.json` has `publishConfig.registry` set to GitHub Packages, pass
|
|
159
|
+
`--registry=https://registry.npmjs.org` in the npmjs workflow and validation
|
|
160
|
+
commands.
|
|
161
|
+
- GitHub Packages publishes target `https://npm.pkg.github.com` and need their
|
|
162
|
+
own install smoke. Do not report "published" without naming which registry
|
|
163
|
+
passed.
|
|
164
|
+
- Validate the final registry state after publish:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
npm view @scope/package version dist-tags --registry=https://registry.npmjs.org --json
|
|
168
|
+
npm view @scope/package version --registry=https://npm.pkg.github.com
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Package Surface Gate
|
|
172
|
+
|
|
173
|
+
Run the pack inventory before any tag or publish:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
npx -y npm@11 pack --dry-run --json --registry=https://registry.npmjs.org
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Review the JSON, not just the exit code:
|
|
180
|
+
|
|
181
|
+
- Required files are present: `dist/` or runtime entrypoints, `bin` targets,
|
|
182
|
+
`.claude-plugin/`, `.codex-plugin/`, `skills/`, install scripts, README, and
|
|
183
|
+
license.
|
|
184
|
+
- Generated caches are absent: `.build/`, `node_modules/`, simulator or local
|
|
185
|
+
runtime build output, local config, credentials, and large derived artifacts.
|
|
186
|
+
- The tarball size is plausible for the package. A sudden large tarball is a
|
|
187
|
+
release blocker until the included file list is explained.
|
|
188
|
+
- `package-lock.json`, if present, has the same package version as
|
|
189
|
+
`package.json`.
|
|
190
|
+
|
|
191
|
+
### npmjs Trusted Publisher Gate
|
|
192
|
+
|
|
193
|
+
For npmjs tokenless publishing from GitHub Actions, verify the npm package's
|
|
194
|
+
Trusted Publisher settings before the real publish:
|
|
195
|
+
|
|
196
|
+
- Provider: GitHub Actions.
|
|
197
|
+
- Owner/user or organization and repository exactly match the GitHub repo.
|
|
198
|
+
- Workflow filename exactly matches the publish workflow, for example
|
|
199
|
+
`publish-npm.yml`.
|
|
200
|
+
- Environment is blank unless the workflow uses a GitHub environment.
|
|
201
|
+
- Allowed actions include `npm publish`.
|
|
202
|
+
|
|
203
|
+
The workflow should use a GitHub-hosted runner, `permissions: id-token: write`,
|
|
204
|
+
`actions/checkout`, and `actions/setup-node` with `registry-url` set to the
|
|
205
|
+
target registry. Do not set `NODE_AUTH_TOKEN` for trusted-publisher npmjs
|
|
206
|
+
publishes. Remove obsolete `always-auth` inputs when using modern
|
|
207
|
+
`setup-node`; use an explicit package-manager cache setting if the default
|
|
208
|
+
cache detection is noisy.
|
|
209
|
+
|
|
210
|
+
Run `npm publish --dry-run --provenance --access public --registry=https://registry.npmjs.org`
|
|
211
|
+
as a packaging check, but do not treat it as proof that the Trusted Publisher
|
|
212
|
+
mapping is valid. A real publish can still fail after a successful dry-run when
|
|
213
|
+
the npm package settings do not match the GitHub workflow. After publishing,
|
|
214
|
+
verify the registry metadata includes
|
|
215
|
+
`dist.attestations.provenance.predicateType = https://slsa.dev/provenance/v1`.
|
|
216
|
+
|
|
217
|
+
### Access Token Fallback Gate
|
|
218
|
+
|
|
219
|
+
Trusted publishing is preferred because it removes long-lived npm secrets from
|
|
220
|
+
CI and automatically generates provenance attestations. Use an npm access token
|
|
221
|
+
only when the user explicitly chooses a fallback after the trusted-publisher
|
|
222
|
+
path is blocked. Token fallback is still a provenance publish; it is not a
|
|
223
|
+
non-provenance shortcut.
|
|
224
|
+
|
|
225
|
+
If token fallback is approved:
|
|
226
|
+
|
|
227
|
+
- Use a granular access token, not a legacy token.
|
|
228
|
+
- Grant read/write only to the package or scope being published; do not grant
|
|
229
|
+
organization access and assume it allows package publishing.
|
|
230
|
+
- Set an expiration date and record the rotation/removal follow-up.
|
|
231
|
+
- Leave 2FA bypass off unless CI publishing cannot work without it and the user
|
|
232
|
+
accepts that exception. npm documents that Bypass 2FA takes precedence over
|
|
233
|
+
account-level and package-level 2FA, so record and rotate/revoke the exception.
|
|
234
|
+
- Store the value as a GitHub secret such as `NPM_TOKEN`; never commit it to
|
|
235
|
+
`.npmrc`, workflow files, docs, or shell history examples.
|
|
236
|
+
- If a token value is pasted into chat, logs, docs, or shell history, treat it as
|
|
237
|
+
compromised: do not use it; revoke it and create a fresh token.
|
|
238
|
+
- Run `npm token list` to audit tokens and revoke the fallback token after the
|
|
239
|
+
release if it is no longer needed.
|
|
240
|
+
|
|
241
|
+
Token fallback workflow steps should set:
|
|
242
|
+
|
|
243
|
+
```yaml
|
|
244
|
+
permissions:
|
|
245
|
+
contents: read
|
|
246
|
+
id-token: write
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
and publish with:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
npm publish --provenance --access public --registry=https://registry.npmjs.org
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
using `NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}`.
|
|
256
|
+
|
|
257
|
+
### Provenance Gate
|
|
258
|
+
|
|
259
|
+
For all npmjs packages, publish with provenance unless there is an explicit
|
|
260
|
+
reason not to and that exception is recorded in the release notes. Provenance
|
|
261
|
+
requires:
|
|
262
|
+
|
|
263
|
+
- A supported cloud CI/CD provider and a cloud-hosted runner.
|
|
264
|
+
- npm CLI `11.5.1+` for Trusted Publisher flows; prefer current npm.
|
|
265
|
+
- `package.json.repository` set to the public source repository and matching the
|
|
266
|
+
repository used by the workflow.
|
|
267
|
+
- `permissions.id-token: write` in the workflow.
|
|
268
|
+
|
|
269
|
+
Trusted Publisher and token fallback publishes both use explicit `--provenance`
|
|
270
|
+
on every real npmjs `npm publish` command. After install, downstream consumers
|
|
271
|
+
can verify registry signatures and attestations with:
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
npm audit signatures
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Failure Triage
|
|
278
|
+
|
|
279
|
+
- If GitHub Packages publishes and installs but npmjs fails, report split
|
|
280
|
+
registry status instead of changing package code by default.
|
|
281
|
+
- If npmjs fails with `E404` or "not found or you do not have permission" on the
|
|
282
|
+
final `PUT`, first inspect the npm Trusted Publisher owner/repo/workflow and
|
|
283
|
+
package access. After fixing npm settings, rerun the failed workflow:
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
gh run rerun <run-id> --failed
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
- Use local npm login or token publishing only as an explicit fallback decision,
|
|
290
|
+
because it bypasses the trusted-publisher/provenance path.
|
|
291
|
+
|
|
292
|
+
### Official References
|
|
293
|
+
|
|
294
|
+
- npm CLI v11 command index:
|
|
295
|
+
`https://docs.npmjs.com/cli/v11/commands/npm`
|
|
296
|
+
- npm CLI publish command:
|
|
297
|
+
`https://docs.npmjs.com/cli/v11/commands/npm-publish`
|
|
298
|
+
- npm Trusted Publishers:
|
|
299
|
+
`https://docs.npmjs.com/trusted-publishers#supported-cicd-providers`
|
|
300
|
+
- npm access tokens:
|
|
301
|
+
`https://docs.npmjs.com/about-access-tokens`
|
|
302
|
+
- npm provenance:
|
|
303
|
+
`https://docs.npmjs.com/generating-provenance-statements`
|
|
304
|
+
- GitHub Actions setup-node trusted-publisher OIDC:
|
|
305
|
+
`https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#publishing-to-npm-with-trusted-publisher-oidc`
|
|
306
|
+
|
|
307
|
+
## README Guidelines
|
|
308
|
+
|
|
309
|
+
For GitHub distribution, include:
|
|
310
|
+
1. What the plugin does (outcomes, not implementation)
|
|
311
|
+
2. Installation instructions
|
|
312
|
+
3. Component list (skills, agents, hooks)
|
|
313
|
+
4. Example usage with screenshots
|
|
314
|
+
5. Configuration options
|
|
315
|
+
6. Changelog
|
|
316
|
+
|
|
317
|
+
**Note:** README.md goes at the repo root, never inside skill folders.
|