@ccoalm/ccl-skills 0.1.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/LICENSE +201 -0
- package/README.md +49 -0
- package/dist/assets/marketplace/.agents/plugins/marketplace.json +12 -0
- package/dist/assets/marketplace/.claude-plugin/marketplace.json +13 -0
- package/dist/assets/marketplace/marketplace-manifest.json +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.claude-plugin/marketplace.json +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.claude-plugin/plugin.json +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.codex-plugin/plugin.json +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.worktree-only +3 -0
- package/dist/assets/marketplace/plugins/ccl-skills/agent-context/session-start.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/agent-context/subagent-start.md +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/AGENTS.md +19 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-delegation-owner.sh +125 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-edit-isolation.sh +102 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-merge-authorization.sh +1156 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/hooks.json +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/merge-authorization-prompt.sh +142 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/owner-dispatch-guard.sh +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/owner-dispatch-stop.sh +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/remind-post-merge-cleanup.sh +144 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/session-context.sh +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/session-start.sh +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/skill-extraction-gate-stop.sh +69 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/subagent-start.sh +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_delegation_owner.sh +329 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_edit_isolation.sh +322 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_merge_authorization.sh +902 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_merge_authorization_prompt.sh +178 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_remind_post_merge_cleanup.sh +121 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_session_start.sh +170 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/AGENTS.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/ccl-skills.ts +564 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-install-skills.md +14 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-update-skills.md +44 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-verify-skills.md +109 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-worktree-check.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/AGENTS.md +28 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/README.md +276 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/owner-dispatch.example.json +10 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/owner-dispatch.sh +1307 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/test.sh +941 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/agents-file-coverage-gate/SKILL.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/agents-file-coverage-gate/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/SKILL.md +188 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/android-dev.md +92 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/flutter-dev.md +80 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/ios-dev.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/kotlin-multiplatform.md +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/mobile-platform-boundaries.md +77 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/mobile-quality-release.md +77 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/source-evidence-map.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/SKILL.md +353 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/client-routing.md +419 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/manual-invocation-and-prompts.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/staged-review-contract.md +197 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/timeout-auth-and-capabilities.md +179 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/AGENTS.md +98 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/classify_envelope.py +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/classify_timeout_exit.sh +15 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/claude_review.sh +1438 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/codex_review.sh +324 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/concern_excerpt.py +295 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/egress_schema.py +214 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/init_policy_matrix.py +642 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/kimi_packet_mcp.py +181 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/kimi_review.sh +1165 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/opencode_review.sh +1190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_cli_review.py +946 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_opencode_review.py +474 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_probe_result.py +1899 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_review_json.py +200 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/review_gate.py +2845 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/review_gate.sh +6 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/run_claude_capture.py +71 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/runtime-surface-verification-design.md +53 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_classify_envelope.sh +68 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_claude_review_probe.sh +2311 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_cli_review_wrappers.sh +1832 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_code_review_identity.sh +73 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_concern_excerpt.sh +245 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_egress_schema.sh +177 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_init_policy_matrix.sh +272 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_kimi_packet_mcp.py +195 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_opencode_review_concurrency.sh +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_opencode_review_retry.sh +1005 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_opencode_review.sh +258 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_probe_result.sh +574 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_review_json.sh +349 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_client_compat.py +434 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_client_order.sh +264 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_gate.sh +2412 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/verify_native_skill_binding.py +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/SKILL.md +153 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/references/diagnosis-playbook.md +54 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/references/prevention-routing.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/SKILL.md +69 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/references/security-review-gate.md +41 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/SKILL.md +165 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/api-security-boundaries.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/architecture-playbook.md +160 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/artifact-generation-architecture.md +37 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/audit-history-architecture.md +29 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/bulk-workflow-architecture.md +33 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/config-rule-routing-architecture.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/cross-cutting-concerns.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/data-modeling-and-migrations.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/data-platform-architecture.md +210 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/dependency-platform.md +105 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/developer-tooling-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/error-contract-architecture.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/event-driven-architecture.md +260 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/http-gateway-architecture.md +74 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/mq-consumer-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/multi-tenant-isolation.md +275 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/notification-architecture.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/ops-checklist.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/performance-capacity-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/protobuf-contract-architecture.md +119 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/redis-cache-coordination.md +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/release-runtime-readiness.md +65 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/replay-comparison-architecture.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/runtime-observability.md +94 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/service-scaffold.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/source-evidence-map.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/workflow-state-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/SKILL.md +159 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/artifact-generation-patterns.md +37 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/audit-history-patterns.md +28 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/bulk-import-export-patterns.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/config-rule-routing-patterns.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/data-access-patterns.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/db-schema-and-dal-patterns.md +109 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/dependency-client-patterns.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/developer-tooling-patterns.md +70 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/domain-feature-patterns.md +78 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/engineering-patterns.md +119 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/error-contract-patterns.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/feature-playbook.md +61 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/http-gateway-client-patterns.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/mq-consumer-patterns.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/notification-patterns.md +42 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/observability-implementation-patterns.md +101 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/performance-capacity-patterns.md +44 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/protobuf-contract-patterns.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/public-api-integration-patterns.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/quality-and-testing-patterns.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/redis-cache-lock-patterns.md +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/release-ops-patterns.md +112 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/reliability-patterns.md +83 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/replay-comparison-patterns.md +32 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/scaffold-and-codegen.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/source-evidence-map.md +54 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/state-machine-task-patterns.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/grill-me/SKILL.md +80 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/grill-me/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/SKILL.md +117 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-approval-auto-reviewer.md +106 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-command-sandbox.md +441 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-context-freshness.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-credentials-auth.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-extensions-skills.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-file-edit-protocol.md +129 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-ide-integration.md +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-input-ingestion.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-instruction-composition.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-lifecycle-hooks.md +92 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-messaging.md +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-runtime-bootstrap.md +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-session-persistence.md +448 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-task-orchestration.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-tool-dispatch.md +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-turn-lifecycle.md +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/inference-capacity-operations.md +162 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/llm-client-gateway.md +156 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/model-prompt-evaluation.md +146 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/retrieval-agent-safety.md +273 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/SKILL.md +202 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/contracts-and-state.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/cross-stack-alignment.md +94 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/framework-choice.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/online-practice-uptake.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/platform-capabilities.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/product-page-checklist.md +40 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/qa-release.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/source-evidence-map.md +82 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/SKILL.md +103 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/agents/openai.yaml +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/references/multi-agent-delegation-playbook.md +100 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/SKILL.md +70 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/public-data-acquisition.md +549 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/public-disclosure-channels.md +97 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/research-prompts.md +66 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/scripts/AGENTS.md +32 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/scripts/test-public-data-acquisition-recipes.sh +379 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/SKILL.md +244 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/alerting-and-on-call.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/framework-middleware-checklist.md +142 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/infra-component-deployment.md +268 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/log-correlation-recipe.md +124 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/log-schema-canonical.md +208 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/metrics-conventions.md +105 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/obs-stack-architecture.md +107 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/sli-slo-design.md +95 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/source-register.md +11 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/SKILL.md +303 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/canary-and-rollout-strategy.md +163 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/config-center-via-etcd.md +245 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/custom-control-plane-boundary.md +298 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/deploy-cli-concrete-recipe.md +312 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/deploy-pipeline.md +165 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/env-and-lane-matrix.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/lane-orchestration-control-plane.md +383 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/multi-region-and-cluster.md +135 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/promotion-gate-and-review.md +149 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/python-package-registry-release.md +462 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/rollback-playbook.md +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/secret-and-config-management.md +231 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/version-authority-and-deprecation.md +21 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/SKILL.md +276 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/dual-sidecar-and-traffic-config-center.md +127 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/framework-middleware.md +143 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/grpc-authority-workaround.md +90 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/http-response-envelope-contract.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/mesh-architecture.md +127 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/multi-env-routing.md +192 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/protobuf-http-contract-signals.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/retry-timeout-circuit-breaker.md +124 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/rpc-framework-recipe.md +494 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-choice.md +113 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-migration-playbook.md +231 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-recipe.md +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/SKILL.md +235 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/adr-convention.md +146 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-checklist.md +30 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-evaluation-report-template.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-execution-spec.md +108 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-sop.md +457 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-templates.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/artifact-egress-confidentiality.md +58 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/code-review-checklist.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/cross-repo-coordination.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/delivery-lifecycle.md +192 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/design-review-gate-mechanics.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/design-routing-and-readiness.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/diagnostic-spec-match-gate.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/dispatch-owner-skills.md +35 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/dormant-code-activation.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/existing-project-assessment-report.md +223 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/external-skill-augmentation.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/feature-deprecation-cascade.md +15 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/high-risk-resilience-gates.md +73 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/implementation-completeness-and-minimality.md +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/implementation-entry-reentry-gate.md +122 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/modular-monolith-heuristic.md +105 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/pre-final-continuation-gate.md +115 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/problem-resolution-and-learning.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/quality-attributes.md +112 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/quality-remediation-program.md +88 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/rd-standards-doc-family-checklist.md +27 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/refactoring-discipline.md +52 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/review-reception.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/shared-gate-artifact-classification.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/source-evidence-map.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/status-tracker-sync.md +77 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/sync-spec-repo-contract.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/verify-developer-experience.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/worktree-mechanics.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/scripts/AGENTS.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/scripts/check-agent-contract-coverage.sh +213 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/SKILL.md +136 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/agents/openai.yaml +9 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/analytics-visualization-interactions.md +206 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/behavioral-aesthetic-logic.md +108 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/complex-creation-interactions.md +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-execution-checklist.md +214 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-impl-naming-and-versioning.md +53 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-intake-and-acceptance.md +129 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-system-source-of-truth.md +97 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/external-ui-ux-quality-benchmarks.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/frontend-code-evidence-map.md +63 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/interaction-design-patterns.md +146 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/layout-recipes-and-screenshot-acceptance.md +250 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/multi-project-token-consistency.md +237 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/multi-stack-strategy.md +65 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/operational-processing-workflows.md +237 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/platform-mobile-patterns.md +324 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/platform-web-desktop-patterns.md +456 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/product-lifecycle-acceptance-and-iteration.md +114 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/product-surface-patterns.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/resource-management-interactions.md +113 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/scenario-community-patterns.md +133 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/source-map.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/tokens-and-components.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/trust-sensitive-ai-and-data-patterns.md +96 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/ui-ux-audit.md +106 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/ui-ux-design-development.md +176 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/visual-craft.md +111 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/SKILL.md +157 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/ai-service-integration-boundaries.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/api-contract-and-schema.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/api-security-boundaries.md +39 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/architecture-playbook.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/async-execution-model.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/background-jobs-and-scheduling.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/batch-and-pipeline-architecture.md +11 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/config-secrets-runtime.md +22 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/data-modeling-and-migrations.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/data-platform-architecture.md +211 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/event-driven-architecture.md +263 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/multi-tenant-isolation.md +281 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/observability-and-ops.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/packaging-runtime-readiness.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/redis-cache-coordination.md +41 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/reliability-and-error-contract.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/source-evidence-map.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/web-framework-boundaries.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/SKILL.md +143 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/ai-service-wiring-patterns.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/async-and-worker-patterns.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/background-job-patterns.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/batch-and-artifact-patterns.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/dependency-client-patterns.md +39 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/error-handling-patterns.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/feature-playbook.md +43 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/observability-implementation-patterns.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/project-structure-and-tooling.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/public-api-security-patterns.md +52 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/redis-cache-lock-patterns.md +78 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/schema-and-validation-patterns.md +23 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/source-evidence-map.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/sqlalchemy-and-migrations-patterns.md +99 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/testing-and-quality-patterns.md +61 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/web-framework-patterns.md +35 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/SKILL.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/config-runtime-readback.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/mr-merge-authorization.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/post-release-env-reset.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/release-closeout-evidence.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/release-scope-confirmation.md +21 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/tag-and-prod-pipeline-gate.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/test-scope-prompt.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/watcher-discipline.md +14 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/SKILL.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/comment-safe-release-doc.md +19 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/release-evidence-workflow.md +23 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/release-testing-scope-section.md +15 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-baseline/SKILL.md +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-baseline/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/SKILL.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/prd-composition-contract.md +35 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/requirement-closure-contract.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/security-four-questions.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-intent/SKILL.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-intent/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-scope/SKILL.md +88 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-scope/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/SKILL.md +337 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/analysis-parse-fix-test-challenge-replay.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/attribution-verification.md +69 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/bootstrap-slim-c3-obligation-table.md +112 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/coverage-exhaustion-traps.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/description-authoring.md +162 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/dual-track-review-gate.md +507 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/eval-routing.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/evidence-card-template.md +51 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/example-domain-preselect.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/external-practice-controls.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/extraction-lifecycle-handoff.md +65 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/extraction-quickstart.md +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/firing-point-placement.md +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/harness-patterns-and-eval.md +286 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/incident-postmortem-extraction.md +190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/l0-l1-l2-routing.md +114 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/online-skill-review.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/parallel-stack-references-pattern.md +164 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/r0-leakage-audit.md +90 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/recurring-anti-patterns-checklist.md +320 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/resume-paused-delivery.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-feedback-mining.md +33 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-finding-standards.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-rubric.md +40 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/rule-consolidation.md +118 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/skill-listing-budget.md +19 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-register.md +254 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-to-skill-extraction.md +658 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/two-source-extraction-pattern.md +167 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/uiux-judgment-extraction.md +179 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/uiux-routing-map.md +51 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/validation-and-landing.md +180 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/AGENTS.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-ccl-skills.sh +1452 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-evidence-card-leak.sh +491 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-mr-target-freshness.sh +173 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-size-budget.sh +488 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-sync-pointers.sh +419 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-golden-trace.rb +197 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-health.rb +327 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-routing-bank.rb +401 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-routing.rb +248 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/generic-r0-leak-scan.sh +282 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/governing-chain-diff.py +321 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/impact-chain-gate.rb +964 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/register-firing-path-resolution.rb +708 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/skill-behavior-eval.py +540 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/source-register-lifecycle.rb +51 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/source-register-pending-status.rb +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_ai_coding_implementation_gates.sh +829 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_impact_chain_refscripts.sh +1203 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_r0_status.sh +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_register_pending_exclusion.sh +137 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_regressions.sh +173 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_route_drift.sh +377 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_size_budget.sh +833 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_skill_catalog.sh +491 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_source_register_lifecycle.sh +114 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_mr_target_freshness.sh +261 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_sync_pointers.sh +538 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_controlled_escalation_pins.sh +154 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_bank_grader_diagnostics.sh +190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_bank_surface_binding.sh +178 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_prose_target.sh +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_generic_r0_leak_scan.sh +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_git_identity_predicate_gate.sh +243 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_governing_chain_diff.sh +419 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_impact_chain_gate_dateless_host.sh +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_register_firing_path_resolution.sh +724 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_register_firing_path_wiring.sh +414 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_regression_runner_registration.sh +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_routing_bank_integrity.sh +205 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_routing_pointer_integrity.sh +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_credential_cwd.sh +61 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_cross_refs.sh +111 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_root_depth.sh +53 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/validate-skill.sh +257 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/SKILL.md +98 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/input-state-machines.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/streaming-rich-output.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/terminal-side-channels.md +96 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/SKILL.md +408 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/AGENTS.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/bitable-setup.md +573 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/README.md +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/github-actions.yml +119 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/gitlab-ci.yml +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/jenkins.Jenkinsfile +106 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/classical-test-design-techniques.md +279 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/gen_report.py +2807 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/makefile-template.md +200 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/report-config-schema.md +272 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/run_pytestless.py +475 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/source-to-case-workflows.md +258 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc-marker-conventions.md +316 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc-review-and-prioritization.md +145 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/AGENTS.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.dart +129 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.go +197 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.py +135 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.ts +285 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/test_gen_report.py +2144 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/update-lifecycle.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/SKILL.md +212 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/ci-fixtures-and-flake-control.md +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/client-runtime-test-matrices.md +50 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/data-and-workflow-testing.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/design-closed-contract-oracles.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/e2e-real-flow-testing.md +71 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/fitness-functions.md +240 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/integration-contract-testing.md +235 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/non-functional-specialized-scenarios.md +296 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/rd-testing-standard-template.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/run-killing-mutation-walk.md +43 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/scenario-testing.md +136 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/source-evidence-map.md +59 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/structured-tc-input-translation.md +67 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-code-authoring-patterns.md +392 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-data-and-determinism.md +39 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-topology-and-commands.md +92 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/unit-testing.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/vendored-contract-drift-checklist.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/verify-enforcement-mechanisms.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/AGENTS.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/client-terminal-ansi-check.py +140 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/client-terminal-ansi-check.test.sh +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-ast-check.py +170 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-ast-check.test.sh +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-go-check.go +198 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-go-check.test.sh +109 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/test_mutation_backup_recipe.sh +237 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/SKILL.md +184 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/comment-safe-feishu.md +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/cross-model-co-review.md +3 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/delivery-face-closeout.md +60 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/doc-charter-first.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/session-vantage-leakage.md +58 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/SKILL.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/complex-workspace-patterns.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/embedded-h5-in-host.md +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/react-architecture.md +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/source-evidence-map.md +60 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/web-quality-release.md +190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/web-ui-quality.md +83 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/SKILL.md +179 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/references/shared-branch-rebase.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/AGENTS.md +23 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/test_worktree_status.sh +207 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/test_worktree_sweep.sh +481 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/worktree-status.sh +325 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/worktree-sweep.sh +245 -0
- package/dist/assets/release.json +2797 -0
- package/dist/claude-adapter.d.ts +9 -0
- package/dist/claude-adapter.js +240 -0
- package/dist/cli-worker.d.ts +1 -0
- package/dist/cli-worker.js +32 -0
- package/dist/cli.d.ts +22 -0
- package/dist/cli.js +214 -0
- package/dist/codex-host.d.ts +30 -0
- package/dist/codex-host.js +162 -0
- package/dist/fs-safe.d.ts +21 -0
- package/dist/fs-safe.js +241 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/manifest.d.ts +8 -0
- package/dist/manifest.js +135 -0
- package/dist/opencode-adapter.d.ts +10 -0
- package/dist/opencode-adapter.js +416 -0
- package/dist/operations.d.ts +3 -0
- package/dist/operations.js +956 -0
- package/dist/paths.d.ts +20 -0
- package/dist/paths.js +4 -0
- package/dist/types.d.ts +58 -0
- package/dist/types.js +1 -0
- package/dist/unified.d.ts +4 -0
- package/dist/unified.js +64 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +5 -0
- package/package.json +35 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# R0 Leakage Audit — Mandatory Landing Gate
|
|
2
|
+
|
|
3
|
+
R0 is the mandatory landing gate enforced before every commit of a skill or reference change. The SKILL.md entrypoint states the rule in one sentence; this file is the operational mechanism. Sibling skills that reference "R0" route to this rule as a whole; the detail here is for the maintainer running the audit.
|
|
4
|
+
|
|
5
|
+
## What R0 Requires
|
|
6
|
+
|
|
7
|
+
Zero hits in the changed files across these categories:
|
|
8
|
+
|
|
9
|
+
- design-source file keys
|
|
10
|
+
- design-source URLs
|
|
11
|
+
- project / team identifiers
|
|
12
|
+
- real subproject paths or repository names
|
|
13
|
+
- real branch names
|
|
14
|
+
- contributor emails or names
|
|
15
|
+
- ticket or work-item ids
|
|
16
|
+
- internal domains or hostnames
|
|
17
|
+
- design-source node ids
|
|
18
|
+
- any non-distilled business or product nouns (in any language) that point to one specific organization rather than a reusable capability
|
|
19
|
+
|
|
20
|
+
A commit that has not run this audit, or that has not closed every hit, is not landed regardless of how the work is described.
|
|
21
|
+
|
|
22
|
+
## How To Run
|
|
23
|
+
|
|
24
|
+
The maintainer keeps one alias file per private source product at `~/.<host>/.private-aliases/<project>.yaml`:
|
|
25
|
+
|
|
26
|
+
- `<host>` is the directory chosen by the host runtime — commonly `.claude` for Claude Code or `.codex` for the Codex CLI. If multiple runtimes share the same machine, the maintainer canonicalises to one host and symlinks the others.
|
|
27
|
+
- `<project>` is the maintainer's short label for the private source product — typically one alias file per separate Figma / code / document corpus, named after the team or product line, never after a specific commit or release.
|
|
28
|
+
|
|
29
|
+
The alias file contains both the sanitized-label dictionary AND an `audit_cmd` block. The maintainer invokes that `audit_cmd` against the changed-file set before committing. Any non-zero hit must be either removed or explicitly recorded in the same alias file's `known_debt` list.
|
|
30
|
+
|
|
31
|
+
**Audit category definitions, scan patterns, and per-project allow-lists live ONLY in those private alias files.** Do not copy the patterns themselves into shared skill content — that would re-leak them.
|
|
32
|
+
|
|
33
|
+
### Generic process-retro profile
|
|
34
|
+
|
|
35
|
+
When the extraction source is the current task/session, a workflow failure, review/tooling behavior, or another process-retrospective source with no single private product corpus, the maintainer MUST use a generic private alias profile such as `~/.<host>/.private-aliases/process-retro.yaml` instead of hand-writing a one-off grep in chat. That profile's `audit_cmd` scans only changed shared-skill files for cross-session leakage classes: local absolute paths, real workspace/repo/worktree names, real branch names, model/session ids, internal domains/hosts/IPs, user or teammate identifiers, ticket/work-item ids, and any source-specific nouns that were observed only in the task transcript.
|
|
36
|
+
|
|
37
|
+
This generic profile is the fallback for process sources only. It does not replace a project-specific alias file when the source is a real product, Figma file, codebase, document corpus, incident, customer workflow, or team corpus. If a process-retro extraction also cites a concrete product artifact, run both the project-specific audit and the generic process-retro audit.
|
|
38
|
+
|
|
39
|
+
The closeout row must name which private profile was used: `project-alias`, `process-retro`, or `both`. If no matching alias/profile exists in the contributor's environment, the change may be committed/pushed only as `interim` (for example a Draft/WIP MR) with `R0 pending maintainer audit` recorded; it must not be marked `R0-clean`, merge-ready, or landing-clean until the private profile exists and passes, or a risk owner records an explicit waiver. An ad-hoc inline `grep` may diagnose leakage risk, but it is not the durable R0 gate for clean landing.
|
|
40
|
+
|
|
41
|
+
## known_debt Scope
|
|
42
|
+
|
|
43
|
+
Pre-existing leakage from earlier extractions may be tracked as `known_debt` in the alias YAML and explicitly excluded from blocking the current change. New or modified content MUST remain zero-hit — `known_debt` cannot waive a newly introduced label.
|
|
44
|
+
|
|
45
|
+
## Fail-Closed Clause — Maintainer Discipline
|
|
46
|
+
|
|
47
|
+
Every new sanitized label introduced in this commit (e.g. an angle-bracket capability token like `<some-capability>`, a class tier like `<class-A1>`, or any other invented short name that stands for a real source artifact) MUST exist in the maintainer's alias YAML before the commit lands.
|
|
48
|
+
|
|
49
|
+
A reference that uses a label not present in the alias file is treated as a hit, because the label is implicitly identifying to the source team and the audit cannot prove otherwise.
|
|
50
|
+
|
|
51
|
+
## Example-Identifier Clause
|
|
52
|
+
|
|
53
|
+
The audit also covers identifier-shaped tokens used as illustrative examples inside prose, code fences, anti-pattern descriptions, or rule wording — variable names, function names, class names, type names, theme-module names, file paths, package names.
|
|
54
|
+
|
|
55
|
+
When such an identifier is observed verbatim in the source codebase / design source, it carries the source's product noun into shared content even when no canonical leakage pattern in the alias YAML matches it.
|
|
56
|
+
|
|
57
|
+
The typical failure shape is a generic-looking compound name whose first half is a product role lifted verbatim from the source — a role-named theme / service / widget where the role word is the source app's name or domain.
|
|
58
|
+
|
|
59
|
+
### Two Safe Substitution Strategies
|
|
60
|
+
|
|
61
|
+
- **Generic placeholder syntax** — angle-bracket meta-token (`<AppTheme>`, `<ServiceName>`) or generic capitalized noun (`MyComponent`, `ExampleService`). Distinct from the alias-YAML-tracked sanitized label and need not be registered.
|
|
62
|
+
- **Clearly-fictional substitute** — names that universally read as placeholder (Acme*, Foo*, sample*) regardless of context.
|
|
63
|
+
|
|
64
|
+
Avoid any substitute that still carries a real product role.
|
|
65
|
+
|
|
66
|
+
### Adversarial Review Is The Practical Safety Net
|
|
67
|
+
|
|
68
|
+
Grep cannot detect this class of leak. Do not rely on R0 grep alone to catch source-shaped example identifiers — codex challenge or equivalent adversarial review is the practical safety net.
|
|
69
|
+
|
|
70
|
+
## Enforcement: Private Audit Is Authoritative, Generic Public Fallback Backstops It
|
|
71
|
+
|
|
72
|
+
`check-ccl-skills.sh` runs the alias-vs-label cross-check ONLY when the maintainer exports `ALIAS_AUDIT_CMD` pointing at their private audit script. That private audit is the strongest and the only clean-landing R0 evidence: it verifies every sanitized label and pattern against the private alias YAML across all file types. On success it prints `alias_audit_ok`, sets `r0_status=private-ok`, and the validator's final line is `ccl_skill_check_clean_ok`.
|
|
73
|
+
|
|
74
|
+
`ALIAS_AUDIT_CMD` is whitespace-split and executed directly as argv — it is NOT evaluated by a shell, so `;`/`&&`/pipes/substitutions in the variable have no effect (injection hardening). A leading `~/` in a word is expanded to `$HOME/` (no other shell expansion happens). Use the `<script-path> <args>` form; if the audit needs shell features, put them inside the script the variable points at.
|
|
75
|
+
|
|
76
|
+
When `ALIAS_AUDIT_CMD` is unset (a normal local machine), the validator no longer merely skips. It runs a deterministic PUBLIC fallback — `scripts/generic-r0-leak-scan.sh` — over the ADDED lines of the current git diff, restricted to shared-skill markdown surfaces (`skills/**/*.md`, `README.md`, `docs/**/*.md`, opencode command markdown). The fallback fails closed (`generic_r0_leak_scan_failed`, exit 1) on high-signal public leaks: absolute local paths (a user home directory, `/private/var/<seg>`, or a Windows drive path), RFC1918 private IPv4 literals (not loopback), internal-only hostnames (`.internal`/`.intranet`/`.corp`), and secret/token literals (key=concrete-value assignments and known vendor token prefixes). It is diff-scoped (never re-polices pre-existing known debt) and markdown-only (the private audit, not this fallback, is the comprehensive gate over scripts/YAML/other file types). On a clean run it prints `generic_r0_leak_scan_ok`, and the validator prints `alias_audit_unavailable`, `r0_status=public-fallback`, and a final line of `ccl_skill_check_interim_ok` (NOT the clean token).
|
|
77
|
+
|
|
78
|
+
**Probe before you conclude it is unset — "a normal local machine" describes the common case, it is NOT a licence to assume `ALIAS_AUDIT_CMD` is absent without checking.** Recording `alias_audit_unavailable` / choosing the public fallback is correct ONLY after you have *observed* it is actually unset. The authoritative probe is to run `check-ccl-skills.sh` and read which branch its output took (`r0_status=private-ok` vs `public-fallback`, plus the final token) — that reflects what the validator actually did and can't be asserted without producing the line; `printenv ALIAS_AUDIT_CMD` is only a quick pre-check. Treating "unset is normal" as a default and dropping straight to the interim fallback is a blocked-verification miss (the failure class: *assuming an environment-provided capability is absent because absent is common, without the one-command check* — and the priming cuts both ways: skipping the check can just as wrongly assume the audit IS there). "Configured" ≠ "works": a non-empty var means the private audit is *configured* and MUST be run, but availability is confirmed only when it actually executes and prints `alias_audit_ok`; a set-but-broken `ALIAS_AUDIT_CMD` (missing / non-executable / wrong-path script, or a run that errors) is itself a blocked-verification failure to fix or record an explicit risk-owner waiver for — it does NOT license the public fallback. Keep the two evidences distinct: the branch-read/probe gates *recording unavailable/fallback*; *asserting the private audit ran* requires the `alias_audit_ok` token, never the probe alone. (This is the R0-surface instance of the general blocked-verification rule — see the always-on R0 bullet and SKILL.md.)
|
|
79
|
+
|
|
80
|
+
The generic fallback is PUBLIC INTERIM evidence, not private-alias clean-landing evidence. It deliberately cannot detect the leaks only the private alias catches — source-shaped example identifiers, project/team nouns, real subproject/repo/branch names, ticket ids, and the maintainer's project-specific token set. So a passing fallback permits an interim commit/branch/Draft MR, but the maintainer or CI MUST still block clean merge/landing until the private audit runs clean (`alias_audit_ok`), a named private profile result is cited, or an explicit risk-owner waiver is recorded.
|
|
81
|
+
|
|
82
|
+
**Neither the deprecated `ccl_skill_check_ok`, the interim `ccl_skill_check_interim_ok`, nor `generic_r0_leak_scan_ok`/`alias_audit_unavailable` satisfies clean-landing R0.** The validator now ends on a machine-distinguishable token: `ccl_skill_check_clean_ok` (with `r0_status=private-ok`) only when the private alias audit ran clean, and `ccl_skill_check_interim_ok` (with `r0_status=public-fallback`) when only the public fallback ran. It still prints a deprecated `ccl_skill_check_ok` line for backward-compatible consumers, but that line is no longer the last line and no longer a sufficient clean-landing signal. The `r0_status=` line is an auxiliary R0 hint, not an overall validator-pass signal: it can appear before later blocking gates run, so clean-landing evidence still requires exit 0 plus the final `ccl_skill_check_clean_ok` token (or a named private-profile result / waiver in the review record). A reviewer who reads only the deprecated token, who treats `r0_status=private-ok` alone as a full pass, who treats `ccl_skill_check_interim_ok` as clean, or who treats the generic fallback as if it were the private audit, will mistake a run that never executed the private alias audit (or a later-failing run) for a clean R0 pass. Treat `alias_audit_unavailable` / `ccl_skill_check_interim_ok` anywhere in the output as **private R0 not run** — the change is `interim` / missing-clean-landing-evidence regardless of the trailing tokens and regardless of a clean generic fallback. That state may be committed or opened as a Draft/WIP MR only when the commit/MR record clearly says `R0 pending maintainer audit`; it must not be merged or described as landing-clean. A closeout or review record may cite R0 as satisfied ONLY when it cites `alias_audit_ok` (the private audit actually ran and found zero hits), a named private-profile result (`project-alias`, `process-retro`, or `both`, per the generic process-retro profile section above), or an explicit risk-owner waiver. A record that cites `ccl_skill_check_ok`, `ccl_skill_check_interim_ok`, `r0_status=private-ok`, or `generic_r0_leak_scan_ok` alone while the output shows `alias_audit_unavailable` is invalid clean-landing R0 evidence and must be redone with `ALIAS_AUDIT_CMD` exported (the output must exit 0 and show final `ccl_skill_check_clean_ok`) before the change can be called landing-clean.
|
|
83
|
+
|
|
84
|
+
## R0 vs Other Audits
|
|
85
|
+
|
|
86
|
+
- R0 is the leakage gate (this file). Failure class: source-domain content escapes into shared skills.
|
|
87
|
+
- Pre-draft example domain selection (see `references/example-domain-preselect.md`) preempts retroactive R0 cleanup cycles by choosing scenario domain before drafting examples.
|
|
88
|
+
- Two-source extraction adds source-specific category extensions on top of R0; see `references/two-source-extraction-pattern.md`.
|
|
89
|
+
- Incident / postmortem extraction adds incident-specific category extensions on top of R0; see `references/incident-postmortem-extraction.md`.
|
|
90
|
+
- Recurring anti-patterns checklist (see `references/recurring-anti-patterns-checklist.md`) is an orthogonal gate covering structural anti-patterns; it does NOT replace R0.
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
# Recurring Anti-Patterns in Skill Content
|
|
2
|
+
|
|
3
|
+
Distilled from dual-track review passes across the platform-* skill family + go-microservice-* + python-service-* during one multi-batch real-project extraction. These anti-patterns reappear across skills because they share extraction provenance, B5-style cross-skill updates, or industry myths. Before committing any skill or reference change, scan for these.
|
|
4
|
+
|
|
5
|
+
## Anti-pattern 1 — source evidence map as provenance dump
|
|
6
|
+
|
|
7
|
+
**Symptom**: a skill's source evidence map reference (or equivalent) contains real repo names, branch state, dates, module counts, private-package names, contributor habits, or dated re-extraction notes.
|
|
8
|
+
|
|
9
|
+
**Why bad**: shared skill tree exposes the extraction corpus + process; project changes invalidate the file; new project re-extraction has to delete and rewrite.
|
|
10
|
+
|
|
11
|
+
**Fix**: replace with a methodology template — describe the *shape* of source coverage tracking (which dimensions to inspect, which mini-map decisions to record, which coverage labels to use) without naming any specific project's artifacts. Real provenance migrates to `~/.<host>/.private-aliases/<project>.yaml`. The shared template tells future extractors *how* to track, not *what was tracked* for this project.
|
|
12
|
+
|
|
13
|
+
**Grep**: tailor a per-project pattern set. Common ones are real service names, real branch names, module counts, dated re-extraction notes, and the project's own short name. Run the maintainer's `ALIAS_AUDIT_CMD` against `*/references/source-evidence-map.md`.
|
|
14
|
+
|
|
15
|
+
## Anti-pattern 2 — Platform Boundary table with stack-specific contract names
|
|
16
|
+
|
|
17
|
+
**Symptom**: a Platform Boundary table (added by B5-style cross-skill update) uses concrete platform contract names from one organization: `base.Request`, `Base{...}`, `logs.CtxInfo/Error`, `filebeat→logstash`, `conf/<env>.yml`, `PSM-style identity`, mandatory middleware names.
|
|
18
|
+
|
|
19
|
+
**Why bad**: cross-language uniformity is the goal of Platform Boundary, but baking one organization's runtime/logging/config stack into the table forces every reader's product onto that stack.
|
|
20
|
+
|
|
21
|
+
**Fix**: replace concrete names with reusable role names: "request-metadata envelope", "structured logger interface", "log pipeline", "per-environment static config files", "platform service identifier". Keep the *role* row; route the *implementation* to the relevant `platform-*` skill.
|
|
22
|
+
|
|
23
|
+
**Grep**: `grep -l "base\.Request\|logs\.CtxInfo\|filebeat\|conf/<env>\.yml\|PSM-style" */SKILL.md`
|
|
24
|
+
|
|
25
|
+
## Anti-pattern 3 — gRPC error transport via `status.message`
|
|
26
|
+
|
|
27
|
+
**Symptom**: skill says typed errors ride in the gRPC "status message" field, encoded as JSON.
|
|
28
|
+
|
|
29
|
+
**Why bad**: gRPC status message is freeform text with size limits, not a structured channel. Standard clients use `google.rpc.Status` with `details` (carried via `grpc-status-details-bin` trailer or framework details mechanism). Packing JSON into status message loses typed retry/security semantics and risks leaking server-rendered text.
|
|
30
|
+
|
|
31
|
+
**Fix**: "encode structured details via `google.rpc.Status` with `details` (transported via the `grpc-status-details-bin` trailer or the framework's native details mechanism); do NOT pack JSON into the gRPC status message field."
|
|
32
|
+
|
|
33
|
+
**Grep** (case-insensitive — the Go idiom is `status.Message()`, not lowercase `status.message`; also catch JSON packed into the message): `grep -niE "status\.message|HTTP/2 status message|status\.Message\(\)" skills/*/references/*.md skills/*/SKILL.md`
|
|
34
|
+
|
|
35
|
+
## Anti-pattern 4 — Internal vocabulary leakage
|
|
36
|
+
|
|
37
|
+
**Symptom**: skill content uses one platform's terminology as generic vocabulary: `NACOS`, `PSM`, `lane`, `inner-network`, `H5`, `edu`, `infra`, `bizprod`, `idl2py.sh`/`idl2go.sh`, `kerrors.ErrBiz`, `x-token`, `x-app-id`, `ctx_keys`, `ppe-`/`ofe-`, internal hostname suffixes (e.g. `code.<organization>.com` or `<product>.internal`).
|
|
38
|
+
|
|
39
|
+
**Why bad**: same as anti-pattern 2 — readers from another platform get told to adopt one organization's naming conventions.
|
|
40
|
+
|
|
41
|
+
**Fix**: replace with role-based vocabulary:
|
|
42
|
+
- `NACOS` → "registry-based service discovery (Nacos / Consul / equivalent)"
|
|
43
|
+
- `PSM` → "platform service identifier" or `<service>`
|
|
44
|
+
- `lane` (when describing platform conventions) → "lane / environment label"
|
|
45
|
+
- `inner-network` → "private-network"
|
|
46
|
+
- `H5` → "mobile web"
|
|
47
|
+
- `edu` / `infra` (as IDL dir names) → `<product-line>` / `<platform-layer>`
|
|
48
|
+
- `bizprod` / `biz` (as image namespaces) → `<prod-namespace>` / `<dev-namespace>`
|
|
49
|
+
- `idl2py.sh` → "one codegen script per target language"
|
|
50
|
+
- `x-token` / `x-app-id` → "auth header" / "app-identity header"
|
|
51
|
+
- `ctx_keys` → "tiered context-keys convention"
|
|
52
|
+
- `ppe-` / `ofe-` → "designated online/offline lane prefix"
|
|
53
|
+
|
|
54
|
+
**Grep**: `grep -nl "NACOS\|\\bPSM\\b\|inner-network\|\\bH5\\b\|\\bedu\\b\|bizprod\|idl2py\|idl2go\|x-token\|x-app-id\|ctx_keys\|\\bppe-\\|\\bofe-" */references/*.md */SKILL.md` — also append the maintainer's project-specific tokens via `ALIAS_AUDIT_CMD`.
|
|
55
|
+
|
|
56
|
+
## Anti-pattern 5 — Dangling internal doc references
|
|
57
|
+
|
|
58
|
+
**Symptom**: skill text says "see today's X notes" or "see X.md in the platform docs" pointing at internal documents not available in the shared skill tree.
|
|
59
|
+
|
|
60
|
+
**Why bad**: future readers can't load the referenced doc; ad-hoc inline guidance becomes the only thing they see, and may be vague enough to mislead.
|
|
61
|
+
|
|
62
|
+
**Fix**: either inline the actual pattern, or link to a stable reference file in the shared skill tree, or remove the reference entirely.
|
|
63
|
+
|
|
64
|
+
**Grep**: `grep -nl "see today's\|see .*\.md\b\|today's notes\|internal doc" */references/*.md`
|
|
65
|
+
|
|
66
|
+
## Anti-pattern 6 — `psm` as placeholder in path/key schemas
|
|
67
|
+
|
|
68
|
+
**Symptom**: a key/path schema uses `psm` as the placeholder: `/{psm}/{namespace}/{key}`, `<psm>.svc.cluster.local`, etc.
|
|
69
|
+
|
|
70
|
+
**Why bad**: `psm` is one platform family's local naming convention. Other platforms use `service`, `service.name`, `app`, etc.
|
|
71
|
+
|
|
72
|
+
**Fix**: use `{service}` or `{platform-service-identifier}` as the placeholder, with a one-line gloss on the actual format the platform chose.
|
|
73
|
+
|
|
74
|
+
**Grep**: `grep -nl "{psm}\|/<psm>/\|<psm>\.svc" */references/*.md`
|
|
75
|
+
|
|
76
|
+
## Anti-pattern 7 — Cross-language inconsistency
|
|
77
|
+
|
|
78
|
+
**Symptom**: same architectural decision is stated differently across `python-service-*` and `go-microservice-*`. Example: Go says "avoid splitting into microservices until ownership/scaling/data/release cadence justify it"; Python says "default to microservices for new backend products".
|
|
79
|
+
|
|
80
|
+
**Why bad**: same backend product gets a different architecture solely because of language choice.
|
|
81
|
+
|
|
82
|
+
**Fix**: align both skills on the same decision, and route language-specific *implementation* differences to dev skills. When the language genuinely changes the architecture (e.g. Python async runtime affects worker design), call out the divergence explicitly with the reason.
|
|
83
|
+
|
|
84
|
+
**Grep**: cross-compare the SKILL.md "Architecture Defaults" / "Core Workflow" / opening section of each language pair; look for assertions that contradict.
|
|
85
|
+
|
|
86
|
+
## Anti-pattern 8 — Outbox vs post-commit MQ ambiguity
|
|
87
|
+
|
|
88
|
+
**Symptom**: skill says "publish to MQ after the transaction commits" as a normal pattern, while another reference in the same skill says "use outbox" for required async effects. Reader picks the wrong one.
|
|
89
|
+
|
|
90
|
+
**Why bad**: process death between DB commit and MQ publish loses the message. Required async side effects need outbox-in-transaction; only best-effort effects may go post-commit.
|
|
91
|
+
|
|
92
|
+
**Fix**: distinguish *required* (outbox in same transaction, dispatched by poller) from *best-effort* (post-commit). Document the promotion criterion: "if a side effect's failure would leave the system in an inconsistent state, it is NOT best-effort — promote it to the outbox."
|
|
93
|
+
|
|
94
|
+
**Grep**: `grep -nl "after the transaction\|post-commit MQ\|MQ.*after.*commit" */references/*.md`
|
|
95
|
+
|
|
96
|
+
## Anti-pattern 9 — `additive` field becomes required
|
|
97
|
+
|
|
98
|
+
**Symptom**: skill says "adding an optional field is compatible" without the caveat that the moment a service starts rejecting requests where the field is absent, it's a breaking change.
|
|
99
|
+
|
|
100
|
+
**Why bad**: IDL says compatible; handler validation says required; old clients break silently.
|
|
101
|
+
|
|
102
|
+
**Fix**: "optional is compatible only as long as absent remains accepted forever; new required semantics need a versioned method/message OR a staged compatibility gate."
|
|
103
|
+
|
|
104
|
+
**Grep**: `grep -nl "adding an optional\|optional field is compatible" */references/*.md`
|
|
105
|
+
|
|
106
|
+
## Anti-pattern 10 — Generic write fallback to baseline lane
|
|
107
|
+
|
|
108
|
+
**Symptom**: skill says "when the requested lane has no healthy instance, fall back to the baseline lane" without operation-specificity.
|
|
109
|
+
|
|
110
|
+
**Why bad**: write requests mutate prod baseline with canary/stress assumptions. Tenant-sensitive reads leak across lanes.
|
|
111
|
+
|
|
112
|
+
**Fix**: "fallback is operation-specific: read-only idempotent endpoints MAY fall back; writes + tenant-sensitive reads + side-effect routes fail closed when the requested lane has no healthy instance."
|
|
113
|
+
|
|
114
|
+
**Grep**: `grep -nl "fall back to.*baseline\|fallback to baseline lane" */references/*.md`
|
|
115
|
+
|
|
116
|
+
## Anti-pattern 11 — Watch reconnect without revision/monotonicity
|
|
117
|
+
|
|
118
|
+
**Symptom**: skill discusses etcd/config-center watch but doesn't mention persisting last-revision, resuming on reconnect, or handling `ErrCompacted` full-resync fallback.
|
|
119
|
+
|
|
120
|
+
**Why bad**: stale config remains active after disconnect; reconnect resumes from old position; auth/routing config silently doesn't update.
|
|
121
|
+
|
|
122
|
+
**Fix**: "persist last-observed revision; resume from `last+1` after reconnect; full resync (re-read all subscribed keys) on `ErrCompacted` or history loss; jittered backoff; readiness probe fails on stale critical-config watcher."
|
|
123
|
+
|
|
124
|
+
**Grep**: `grep -nl "watch.*callback\|watch.*reconnect\|watcher" */references/*.md`
|
|
125
|
+
|
|
126
|
+
## Anti-pattern 12 — Fixed-lease lock without fencing
|
|
127
|
+
|
|
128
|
+
**Symptom**: scheduled job has `lock_lease` + `max_execution_time` but no fencing tokens or renewable leases.
|
|
129
|
+
|
|
130
|
+
**Why bad**: if execution exceeds lease (GC pause, slow dependency, large backfill), a second pod acquires the lock and both run.
|
|
131
|
+
|
|
132
|
+
**Fix**: "renewable leases with fencing tokens for jobs whose runtime can exceed one lease window. Renew via heartbeat at < ½ TTL; every write carries the fencing token; second pod's stale token is rejected by the backend."
|
|
133
|
+
|
|
134
|
+
**Grep**: `grep -nl "lock lease\|max execution time\|max_execution\|lock TTL" */references/*.md`
|
|
135
|
+
|
|
136
|
+
## Anti-pattern 13 — Silent skip on invalid list-config entry
|
|
137
|
+
|
|
138
|
+
**Symptom**: skill says "skip invalid entries with warning logs" for list-style config.
|
|
139
|
+
|
|
140
|
+
**Why bad**: one malformed routing/credential entry disappears, shifting traffic or disabling protection without alerting.
|
|
141
|
+
|
|
142
|
+
**Fix**: "fail the whole snapshot for security/routing/credentials lists; partial-skip with warning only for non-critical inventory lists with explicit degraded-mode contract."
|
|
143
|
+
|
|
144
|
+
**Grep**: `grep -nl "skip invalid\|skip.*malformed" */references/*.md`
|
|
145
|
+
|
|
146
|
+
## Anti-pattern 14 — Lazy endpoint refresh in hot path
|
|
147
|
+
|
|
148
|
+
**Symptom**: skill says "refresh endpoints lazily on next operation" for service discovery / config center / similar clients.
|
|
149
|
+
|
|
150
|
+
**Why bad**: refresh + reconnect cost (DNS, TLS handshake) lands on a user request during endpoint churn; concurrent requests stampede the reconnect.
|
|
151
|
+
|
|
152
|
+
**Fix**: "background goroutine / task refresh on bounded cadence; singleflight on reconnect; serve last-known-good endpoints with bounded staleness while background refresh runs."
|
|
153
|
+
|
|
154
|
+
**Grep**: `grep -nl "refresh lazily\|reconnect lazily\|refresh on next" */references/*.md`
|
|
155
|
+
|
|
156
|
+
## Anti-pattern 15 — Recovery middleware ordered after auth
|
|
157
|
+
|
|
158
|
+
**Symptom**: skill says middleware order is "auth, recovery, ..." or doesn't specify recovery wraps auth.
|
|
159
|
+
|
|
160
|
+
**Why bad**: panic in session/token parsing happens before recovery wraps it; framework drops connection or crashes process depending on semantics.
|
|
161
|
+
|
|
162
|
+
**Fix**: "recovery wraps auth, validation, metrics, handler. Order: context injection → recovery → tracing → auth → metrics/logging → handler. Verify panic-catch coverage explicitly."
|
|
163
|
+
|
|
164
|
+
**Grep**: `grep -nl "middleware.*order\|recovery.*after\|auth.*recovery" */references/*.md`
|
|
165
|
+
|
|
166
|
+
## Anti-pattern 16 — Storage deletion before traffic drain
|
|
167
|
+
|
|
168
|
+
**Symptom**: cleanup sequence deletes pod / PVC / object storage before deregistering from service discovery and draining in-flight traffic.
|
|
169
|
+
|
|
170
|
+
**Why bad**: in-flight requests hit missing state; PVC data destroyed while still being read.
|
|
171
|
+
|
|
172
|
+
**Fix**: "(1) shift traffic weight to zero, (2) deregister from SD, (3) wait for in-flight drain (documented grace window), (4) snapshot or verify retention on durable storage, (5) delete workloads, (6) delete ephemeral-tagged storage, (7) remove service-level routing/metadata."
|
|
173
|
+
|
|
174
|
+
**Grep**: `grep -nl "delete.*lane.*storage\|cleanup.*storage\|delete.*workload" */references/*.md`
|
|
175
|
+
|
|
176
|
+
## Anti-pattern 17 — DELETE without safety gates
|
|
177
|
+
|
|
178
|
+
**Symptom**: DELETE operation cascades through k8s + mesh + DB in one transaction without protected-flag, dry-run preview, two-person approval, or expected-count confirmation.
|
|
179
|
+
|
|
180
|
+
**Why bad**: operator typo deletes prod. No mitigation.
|
|
181
|
+
|
|
182
|
+
**Fix**: "protected lanes (online lanes etc.) require unprotect-then-delete two-step; DELETE requires a matching dry-run preview token; two-person approval for online targets; finalizer pattern + Deleting state; expected_count confirmation prevents racing add; non-empty target requires `force: true` + approval."
|
|
183
|
+
|
|
184
|
+
**Grep**: `grep -nl "DELETE /lane\|cascade.*delete\|delete cascade" */references/*.md`
|
|
185
|
+
|
|
186
|
+
## Anti-pattern 18 — CORS AllowAllOrigins + AllowCredentials
|
|
187
|
+
|
|
188
|
+
**Symptom**: skill recommends CORS defaults with both `AllowAllOrigins: true` and `AllowCredentials: true`, OR with a permissive `AllowOriginFunc` that reflects arbitrary origins under credentials.
|
|
189
|
+
|
|
190
|
+
**Why bad**: browsers reject `*` with credentials, OR frameworks reflect origin and grant credentialed access to attacker hosts.
|
|
191
|
+
|
|
192
|
+
**Fix**: "default: explicit allowlist. Production admission rejects AllowAllOrigins+AllowCredentials combinations AND permissive AllowOriginFunc validators. AllowOriginFunc must exact-match against a reviewed list."
|
|
193
|
+
|
|
194
|
+
**Grep**: `grep -nl "AllowAllOrigins\|AllowCredentials\|AllowOriginFunc" */references/*.md`
|
|
195
|
+
|
|
196
|
+
## Anti-pattern 19 — `keys_under_root` + `overwrite_keys` letting app overwrite platform fields
|
|
197
|
+
|
|
198
|
+
**Symptom**: filebeat/log-shipper config uses `keys_under_root: true` + `overwrite_keys: true` without protecting platform-reserved fields.
|
|
199
|
+
|
|
200
|
+
**Why bad**: compromised or buggy service can emit `_lane=prod` from a non-prod pod; canary queries misclassify; audit searches lie.
|
|
201
|
+
|
|
202
|
+
**Fix**: "set `overwrite_keys: false` for platform-reserved `_`-prefixed fields. Add pipeline filter that strips/renames app-supplied platform fields and re-injects authoritative values from pod metadata. SDK contract: only platform SDK writes `_`-prefixed fields."
|
|
203
|
+
|
|
204
|
+
**Grep**: `grep -nl "keys_under_root\|overwrite_keys" */references/*.md`
|
|
205
|
+
|
|
206
|
+
## Anti-pattern 20 — Chat callback without signature/replay protection
|
|
207
|
+
|
|
208
|
+
**Symptom**: skill describes chat-platform card click → API callback → approve, without specifying HMAC signature verification, timestamp skew check, nonce/event-id replay check, action-task binding.
|
|
209
|
+
|
|
210
|
+
**Why bad**: attacker who captures one valid signed payload can replay it to approve arbitrary deploys.
|
|
211
|
+
|
|
212
|
+
**Fix**: "callback handler MUST verify: (a) platform HMAC signature, (b) timestamp skew (< 5 min), (c) nonce/event-id replay (against recently-seen set), (d) action binding (click's task_id + version + reviewer matches original send), (e) RBAC. All five required."
|
|
213
|
+
|
|
214
|
+
**Grep**: `grep -nl "chat.*callback\|card.*callback\|approve.*click\|callback/.*card" */references/*.md`
|
|
215
|
+
|
|
216
|
+
## Anti-pattern 21 — Stack-specific syntax in mirrored sections
|
|
217
|
+
|
|
218
|
+
**Symptom**: parallel-stack reference (Go + Python files mirroring the same architecture) has DB-engine syntax, runtime-mechanic names, or library/framework API names in the supposedly stack-agnostic mirrored sections — `SET LOCAL`, `BYPASSRLS`, `FORCE ROW LEVEL SECURITY`, `context.Context`, `goroutine`, `contextvars`, `asyncio`, `GORM`, `SQLAlchemy`, `FastAPI`, `run_in_executor`, etc.
|
|
219
|
+
|
|
220
|
+
**Why bad**: defeats the sibling-sync invariant; the mirrored sections drift between Go and Python; agents copying from the wrong stack produce code that does not run.
|
|
221
|
+
|
|
222
|
+
**Fix**: each parallel-stack file ends its stack-glue section with a `### Mirrored-section grep gate` (token list + awk-then-grep run command). The grep runs on every commit; zero hits required. See `parallel-stack-references-pattern.md` for the gate shape. Allowed exception: the sibling-sync header itself names the category classes (without tokens) and the routing-reference text may differ per stack (`api-security-boundaries.md` vs `web-framework-boundaries.md`).
|
|
223
|
+
|
|
224
|
+
**Grep**: run the file's own gate, e.g. `awk '/^## Go-specific implementation patterns/{exit} 1' <file>.md | grep -nE 'SET LOCAL|BYPASSRLS|FORCE ROW LEVEL SECURITY|context\.Context|\bgoroutine\b|contextvars|\basyncio\b|GORM|SQLAlchemy|FastAPI'`
|
|
225
|
+
|
|
226
|
+
## Anti-pattern 22 — Sibling-sync header self-violation
|
|
227
|
+
|
|
228
|
+
**Symptom**: the parallel-stack file's sibling-sync header itself contains the tokens it forbids — listing `SET LOCAL`, `BYPASSRLS`, `context.Context`, `contextvars`, `GORM`, `SQLAlchemy`, etc. as examples of what must NOT appear in mirrored sections. The grep gate then matches its own header and always fires.
|
|
229
|
+
|
|
230
|
+
**Why bad**: the gate is now unusable; maintainers learn to ignore it; the rule it states becomes unenforceable in practice.
|
|
231
|
+
|
|
232
|
+
**Fix**: header names category *classes* only ("DB-engine-specific syntax, runtime/concurrency-mechanic names, library/framework API names") and references the grep-gate subsection by name. Concrete token lists live only in the grep-gate subsection at the end of the stack-glue.
|
|
233
|
+
|
|
234
|
+
**Grep**: scan the header (top ~10 lines) for stack tokens; any hit there is the violation.
|
|
235
|
+
|
|
236
|
+
## Anti-pattern 23 — Body strengthened without checklist sync
|
|
237
|
+
|
|
238
|
+
**Symptom**: a body section was strengthened in a way that **alters acceptance criteria, required evidence, scope, exception handling, or verification behavior** (R3 added "classify every relation, not just tables with `tenant_id`"; R3 added "denylist propagation barrier before destructive action"; R3 added six evidence artifacts for crypto-deletion). The operations checklist still uses the older weaker rule ("every table with `tenant_id` is enumerated"; "reads consult the denylist"; "the six artifacts recorded").
|
|
239
|
+
|
|
240
|
+
**Why bad**: checklist regression — a launch verification that passes against the older rule misses what the stronger rule was supposed to catch; the body's safety improvement is invisible to launch readiness.
|
|
241
|
+
|
|
242
|
+
**Scope (what counts as "strengthening" for this rule)**: body changes that alter (a) acceptance criteria, (b) required evidence, (c) scope of applicability, (d) exception or carve-out handling, or (e) verification behavior. Rationale-only clarifications — explaining *why* an existing rule exists without changing what it requires — do not trigger this rule and should not bloat the checklist with duplicate or wording-only checks.
|
|
243
|
+
|
|
244
|
+
**Fix**: every qualifying body strengthening update must include the matching checklist update in the same commit. After each dual-track round's fixes, diff the checklist against the body's strengthened sections and verify each new clause that changes acceptance/evidence/scope/exception/verification has a corresponding verification item.
|
|
245
|
+
|
|
246
|
+
**Grep**: when reviewing a fix-up commit, diff body sections against the operations-checklist section; if a body rule changed any of the five categories above but the checklist did not, flag for fix-up.
|
|
247
|
+
|
|
248
|
+
## Anti-pattern 24 — Evidence-based carve-outs replaced with categorical ones
|
|
249
|
+
|
|
250
|
+
**Symptom**: a rule has a carve-out (irreversible-data-loss override of threshold inflation; monitoring-as-primary for external dependencies; crypto-deletion as erasure; large-tenant priority lane on shared accelerator). The carve-out is stated as **categorical** ("for external dependencies, monitoring may be primary"; "irreversible data loss overrides recurrence calibration") with no evidence requirement.
|
|
251
|
+
|
|
252
|
+
**Why bad**: agents apply the carve-out to any vaguely-fitting case; the carve-out becomes the default; the rule it carved out of is gutted.
|
|
253
|
+
|
|
254
|
+
**Fix**: every carve-out requires recorded evidence per case. Examples:
|
|
255
|
+
- Irreversible data loss carve-out: requires (a) category, (b) repair-impossible evidence, (c) blast radius, (d) narrowest workflow, (e) gate scope.
|
|
256
|
+
- Monitoring-as-primary carve-out: requires a prevention-disqualification checklist (boundary contract / idempotency / timeout-retry / capability-auth / contract-replay test / canary) where each applicable gate is marked unavailable with evidence.
|
|
257
|
+
- Crypto-deletion as erasure: requires six artifacts (key hierarchy / backup inventory / restore-path test / envelope destruction proof / backup-purge SLA / regulator acceptance) at per-store/per-tenant/per-key-version scope, freshness window, independent countersignature, non-forgeable workflow execution identifier.
|
|
258
|
+
- Large-tenant priority lane on shared accelerator: requires a named workload class with a latency SLO or large-prefill characteristic, with the specific isolation mechanism (reserved capacity / priority lane / max-wait admission / dedicated partition) declared.
|
|
259
|
+
|
|
260
|
+
A carve-out is a contract, not a category badge. Without the evidence row, fall back to the base rule.
|
|
261
|
+
|
|
262
|
+
**Grep**: search for `categorical`, `override`, `exception`, `carve-out`, `unless` and verify each has named evidence requirements; categorical carve-outs without an evidence row are the bug.
|
|
263
|
+
|
|
264
|
+
## Anti-pattern 25 — Bypass-role enforcement without bypass-path enumeration
|
|
265
|
+
|
|
266
|
+
**Symptom**: skill describes engine-level enforcement (RLS / row policies / equivalent) as "the authority" without naming the bypass paths — superuser, BYPASSRLS / equivalent role attribute, table owner unless forced, bulk-truncate / schema operations, logical replication, security-invoker vs definer views, triggers under different roles.
|
|
267
|
+
|
|
268
|
+
**Why bad**: every real engine has bypass paths; treating engine policy as universal authority means migration scripts, repair tools, replication streams, and admin queries silently bypass the safety the rule promised.
|
|
269
|
+
|
|
270
|
+
**Fix**: every engine-policy rule must (a) enumerate the bypass paths for the chosen engine, (b) require forced policy enforcement (FORCE RLS or equivalent) where the table-owner bypass otherwise applies, (c) use distinct DB roles for application / migration / admin / replication, none carrying the bypass attribute on the production app path, (d) require explicit tenant filters or offline approval on bypass-role connections, and (e) audit every bypass-role connection — with **both data-plane independence** (audit sink is write-only to bypass roles) **and control-plane independence** (bypass operator cannot modify audit-transport network/DNS/service-account/queue routing) plus an alert on audit delivery gaps.
|
|
271
|
+
|
|
272
|
+
**Grep**: `grep -nE 'RLS|row-level security|row policy|engine policy.*authoritative' */references/*.md` and verify each hit names bypass paths + role separation + audit-both-planes.
|
|
273
|
+
|
|
274
|
+
## Anti-pattern 26 — "Reversible step" without time-window classification
|
|
275
|
+
|
|
276
|
+
**Symptom**: migration / rollback design classifies steps as reversible or irreversible based on structural transforms (ID-scheme reshape, shard-key rewrite, encryption-key envelope change). Time-based irreversibility — TTL, retention purges, token expiry, object-lifecycle rules, backup rotation — is not classified, so "rollback safe" steps become irreversible during the migration window as old state is deleted by clock.
|
|
277
|
+
|
|
278
|
+
**Why bad**: rollback attempted past a TTL deadline finds the old state already purged; the recorded "last safe rollback point" is in the past even though no explicit structural irreversible step ran.
|
|
279
|
+
|
|
280
|
+
**Fix**: classify each step's reversibility along **two axes** — structural irreversibility AND time-based irreversibility. Last safe rollback point is the **earliest** of structural-irreversible boundary and any time-based deadline that touches state needed for rollback. Either freeze/extend those timers across the migration window (only where legally permitted — regulator-mandated retention maxima and data-subject deletion SLAs cannot be paused) or compute the rollback point from them.
|
|
281
|
+
|
|
282
|
+
**Grep**: `grep -nE 'reversible|rollback point|migration step' */references/*.md` and verify each migration rule names both axes.
|
|
283
|
+
|
|
284
|
+
## Anti-pattern 27 — Repo/worktree identity decided by PATH SHAPE instead of git structure
|
|
285
|
+
|
|
286
|
+
**Symptom**: a hook, gate, or state-keyed script decides "which repository is this" or "is this checkout already isolated" from a **path-shaped** signal — matching a git-dir string against `*/worktrees/*`, or using `rev-parse --absolute-git-dir` as the identity key. Both read as "the repo" and are correct in the team's own conventional layout, which is exactly why they survive review and local testing.
|
|
287
|
+
|
|
288
|
+
**Why bad**: neither signal is owned by the control. `--absolute-git-dir` is *per-worktree* (`<common>/worktrees/<id>`), so state written from a worktree is invisible from the primary checkout — and a path-name match on `worktrees/` is decided by the **user's directory naming**, so a primary checkout that merely lives under a directory called `worktrees/` (`~/work/worktrees/<repo>`) is misread as already-isolated and the control **silently fails open**. For a security/isolation gate that means every deny branch is disabled with no error, no log, and a green test suite — the suite's own fixtures are built in the conventional layout, so the trap case never occurs there.
|
|
289
|
+
|
|
290
|
+
**Fix**: predicate on the git structure the control actually owns.
|
|
291
|
+
- **Identity / state key** → `rev-parse --path-format=absolute --git-common-dir` (same value from every worktree of a repo; fall back to plain `--git-common-dir` + normalization for git < 2.31).
|
|
292
|
+
- **"Is this a linked worktree"** → compare `--absolute-git-dir` against the common dir; they differ **iff** it is linked. Path names never enter the decision.
|
|
293
|
+
- A submodule initialized inside a linked worktree keeps its git-dir under that worktree's admin dir and reports the SAME common dir, so it reads as primary; when "already isolated" must include it, detect the enclosing admin dir by the marker files git writes there (`commondir` + `gitdir`), still never by a directory *named* `worktrees`.
|
|
294
|
+
- Any fixture proving such a control must include a layout the team convention does not produce (a checkout under a `worktrees/`-named path), or the probe cannot see the failure.
|
|
295
|
+
|
|
296
|
+
**Grep**: `find hooks scripts -name '*.sh' -not -name 'test_*.sh' -not -name 'test.sh' | xargs grep -nE '\*['"'"'"]?/worktrees/['"'"'"]?\*'` (non-comment hits), and review every `--absolute-git-dir` whose output becomes a state path or identity key. Stars on **both** sides make it a match pattern rather than a path, so an ordinary `.work/worktrees/*` cleanup glob is not flagged. That spelling is machine-enforced by `check-ccl-skills.sh` (`git_identity_predicate_scan`); two things are deliberately **not** caught and stay human/challenge checks — a fully dynamic pattern (`*"/$seg/"*`) and `--absolute-git-dir` used as an identity key (the same call is legitimate for locating *this* worktree, so grepping it is false-positive-prone).
|
|
297
|
+
|
|
298
|
+
**Occurrences that promoted it**: `scripts/owner-dispatch/owner-dispatch.sh` (state keyed per-worktree → boundary record written in a worktree unreadable from the primary checkout) and `hooks/guard-edit-isolation.sh` (path-name match → the repo's only edit-time hard-deny gate silently disabled for checkouts under a `worktrees/`-named path).
|
|
299
|
+
|
|
300
|
+
## How to use this checklist
|
|
301
|
+
|
|
302
|
+
Before committing any skill or reference change touching operational/architectural rules:
|
|
303
|
+
|
|
304
|
+
1. Run the grep from each applicable anti-pattern against the changed file set.
|
|
305
|
+
2. For each hit, decide: fix in this commit, defer with explicit reason (recorded in private alias `known_debt` if pre-existing), or confirm not-applicable (this skill's context legitimately uses the term).
|
|
306
|
+
3. After the dual-track review + challenge pass, re-run this checklist on the new content (passes often introduce new patterns).
|
|
307
|
+
|
|
308
|
+
The checklist grows over time. Add a new anti-pattern when:
|
|
309
|
+
- A pattern appears in 2+ skills and represents a real safety / correctness / sanitization issue.
|
|
310
|
+
- A codex challenge finding maps to a class, not a one-off.
|
|
311
|
+
- A user correction exposes a class of mistake the workflow should prevent.
|
|
312
|
+
|
|
313
|
+
## Promoting a symptom to a mechanical gate
|
|
314
|
+
|
|
315
|
+
These greps are only as strong as whoever remembers to run them — a human checklist does not stop a commit by an agent (or another model) that never runs it. When a symptom keeps reaching shared skills *despite* being named here (e.g. a one-organization contract token that leaked even though it was already listed), promote it from this checklist to a **mechanical gate in `check-ccl-skills.sh`** so it blocks regardless of who commits. Building that detector:
|
|
316
|
+
|
|
317
|
+
- **Anchor the pattern on the ACTUAL leaked text, not imagined variants.** Read the real leaked instances and extract their invariant (e.g. the leaked field was always the reserved number, always proto-terminated). Broadening by imagination starts a false-positive arms race that blocks legitimate docs — a real version/limit doc that merely mentions the same number.
|
|
318
|
+
- **Prefer high precision + a documented recall limit over broad matching.** For a *blocking* gate, a false-positive that blocks legitimate content is worse than a recall gap: the human checklist + dual-track challenge stay the comprehensive net, while the mechanical gate is the deterministic catch for the exact recurring shape. State the accepted recall limit in the script comment.
|
|
319
|
+
- Expect a multi-round precision/recall convergence — the challenge will keep surfacing one real FP or FN per round until the pattern matches the invariant and nothing else.
|
|
320
|
+
- The new gate will flag this checklist itself and any provenance row that legitimately **quotes** the symptom. Allowlist the symptom-defining file(s) by anchored repo-relative path (not a bare basename, and never a caller-settable env override that neuters the gate), and **reword provenance to non-literal** rather than broadly allowlisting — keep the gate maximally strict.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Resume paused delivery — premature-stop recovery binding rules
|
|
2
|
+
|
|
3
|
+
Companion to the **auto-trigger durable learning** Core Rule in `SKILL.md` (under *Retrospectives, corrections & auto-triggered learning*). The Core Rule carries the gate: for a premature-stop correction after affirmative continuation, immediate recovery first reruns the active owner's current continuation/blocking gate in full (for product R&D, Pre-Final Continuation Gate steps 1–6) against current state, and recovery proceeds only when a literal binding exists. This file carries the relocated binding detail: what counts as a binding, the `continuing:`-line form, and what makes a `blocked:` recovery invalid.
|
|
4
|
+
|
|
5
|
+
## The two binding paths
|
|
6
|
+
|
|
7
|
+
Bind recovery when either:
|
|
8
|
+
|
|
9
|
+
- **(a)** the literal original `proposed-next:` action/scope (or literal explicit proposal for a pre-marker incident) and literal assent are preserved in the visible conversation or quoted exactly in trusted host-owned session/compaction state; or
|
|
10
|
+
- **(b)** the current user's premature-stop correction itself literally names the paused action and scope — on path (b), quote those exact user words in the visible `continuing:` line before proceeding.
|
|
11
|
+
|
|
12
|
+
A semantic compaction paraphrase or a bare "why did you stop" complaint is not path-(b) authority. Never copy real conversation text into a shared repository record, reconstruct, broaden, or substitute it. The user's challenge is a current reactivation signal for that exact slice, not a demand for redundant reconfirmation; restate and proceed only when path (a) or (b) binds, and ask again when neither path binds the slice, the user intervened, or current scope/gates changed.
|
|
13
|
+
|
|
14
|
+
## Invalid `blocked:` recovery
|
|
15
|
+
|
|
16
|
+
A `blocked:` recovery without the step-1 evidence and a specific missing authority/ambiguity is invalid: rerun the gate and emit a well-formed outcome before any action; if ambiguity remains, ask the blocker question in the same turn and stay blocked. Do not let correction RCA or extraction extend a still-authorized delivery, and do not let stale assent bypass a newly pending or inconclusive gate.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Review-feedback mining — turning human review comments into skill candidates
|
|
2
|
+
|
|
3
|
+
Use this layer when the source corpus is **human review feedback on merged changes** (inline PR/MR comments, review submissions, review-thread replies) and the goal is to find guidance a reviewing skill (`code-review`, `product-rd-workflow`'s review checklist, a stack `*-dev` skill, or a domain reviewer rule) should carry. It complements the incident layer (`incident-postmortem-extraction.md`) and the task-retrospective layer (`source-to-skill-extraction.md`): those mine failures; this mines what reviewers repeatedly had to say. The evidence bar below exists because the naive version — "every comment is a lesson" — produces checklist bloat, and the naive adoption test — "the thread was resolved / the author replied fixed" — promotes guidance the final code may never have implemented.
|
|
4
|
+
|
|
5
|
+
## What counts as evidence
|
|
6
|
+
|
|
7
|
+
- **Author filter first.** Only feedback whose author is a human reviewer counts; bot/automation comments, and human comments that merely forward automation output, are excluded before anything else is read. The change author's own comments never count as adoption of themselves.
|
|
8
|
+
- **Adoption is a diff fact, not a thread state.** A comment was adopted only if the change landed *after* the comment differs from the change as it stood *when* the comment was made in the way the comment asked. Compare the **feedback-time patch** (the change's diff at the last commit that predates the comment) with the **final landed patch** (the change's diff at the landing merge against its target parent). Merge status, a resolved thread, an author reply saying "fixed", or a same-file edit are context, never proof.
|
|
9
|
+
- **Fail closed when the baseline cannot be reconstructed.** After a force-push, when the reviewed commit is no longer part of the change, when the feedback predates every surviving commit, or when the landing shape cannot be reconstructed, classify the item `unclear` and exclude it — do not guess adoption from the final diff alone (that diff also contains unrelated target-branch movement).
|
|
10
|
+
- **Timestamps must strictly predate the merge** for both creation and last edit; an item edited at or after merge is post-merge commentary, not pre-merge feedback.
|
|
11
|
+
|
|
12
|
+
## Classification pipeline
|
|
13
|
+
|
|
14
|
+
1. **Author + adoption** — classify each eligible item as `human-authored | forwarded-automation | unclear` and `adopted | rejected | unclear`. Only `human-authored ∧ adopted` proceeds.
|
|
15
|
+
2. **Against the current skill** — classify each adopted item as `candidate | already-covered | implementation-specific | not-feedback`. `already-covered` is the idempotency guard: rerunning over an overlapping window must not re-propose guidance the skill already states. A **singleton may qualify** — recurrence is a strength signal, not an admission ticket; one adopted, generalizable, non-obvious correction is enough.
|
|
16
|
+
3. **Draft from structured agreed guidance, never from raw review text** — the draft input is the classified, generalized statement of what the reviewer asked and why the change adopted it, with the identifying details of the source change already stripped (`r0-leakage-audit.md`, `example-domain-preselect.md`).
|
|
17
|
+
4. **Independent review of the same skill diff** — the candidate diff goes through the normal dual-track gate (`dual-track-review-gate.md`); when two model reviewers are used, they must be independently configured (refuse to run when both resolve to the same executable/provider), and disagreement gets one bounded re-evaluation and stays visible in the run record if unresolved.
|
|
18
|
+
|
|
19
|
+
## Operating stance
|
|
20
|
+
|
|
21
|
+
- **"No candidate" is the common, correct outcome** of a maintenance pass over a window; days without a skill change are the process working, not stalling. Do not lower the bar to produce output.
|
|
22
|
+
- **The operator decides; model output is never committed verbatim.** Read the candidate diff on its own merits — look for checklist bloat, historical prose, extrapolation from a single incident presented as a general rule, and duplication of what the skill or an authoritative doc already says — then discard, batch with a later candidate, or promote with edits. Small edits during promotion (tightening, folding into an existing rule, dropping an example that only made sense with the source change's context) are expected and preserve the reviewer judgment the process depends on.
|
|
23
|
+
- **Skill drift stops promotion.** A candidate is drafted against a recorded skill revision; if the skill has changed since, re-run the classification (or manually rebase and re-review) rather than applying a stale complete-file rewrite over newer guidance.
|
|
24
|
+
- **Idempotent, cursor-free windows.** Scan a time window with overlap rather than keeping a repository cursor; already-covered guidance classifies out, so overlap is harmless and a missed day is recovered by widening the window.
|
|
25
|
+
- **Provenance stays with the promotion, identifying details stay out of the shared tree.** The promoted change records which feedback items (by stable id/URL) and which landed evidence ranges support each rule — in the private alias / provenance archive per `extraction-lifecycle-handoff.md`; the shared skill text carries the generalized rule only.
|
|
26
|
+
|
|
27
|
+
## Failure shapes this layer prevents
|
|
28
|
+
|
|
29
|
+
- Promoting a rule from a comment the author argued down and never implemented (thread resolved ≠ adopted).
|
|
30
|
+
- Promoting the same guidance twice because the second pass did not classify against the current skill.
|
|
31
|
+
- Checklist bloat from treating every nit as a lesson; a reviewer's one-off preference dressed as a standard.
|
|
32
|
+
- Committing a model-drafted `SKILL.md` verbatim, including examples that only make sense with the source PR in view.
|
|
33
|
+
- Diffing the reviewer's clicked commit against the landing merge and attributing target-branch movement to "adoption".
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Review Finding Standards
|
|
2
|
+
|
|
3
|
+
Shared output standard for any code/plan/design review, regardless of who runs it (human, Claude, Codex, an external review wrapper) or which path produced it. Two things must mean the same across all reviewers, or review and dual-track convergence are theater: **how severity is calibrated** and **what makes a finding actionable rather than noise**.
|
|
4
|
+
|
|
5
|
+
This file does NOT teach what to look for — that craft is owned where it is operational (see Non-Goals). It standardizes only the finding's severity and shape.
|
|
6
|
+
|
|
7
|
+
## Severity Rubric
|
|
8
|
+
|
|
9
|
+
Calibrate by *consequence and reversibility*, not by how clever the bug is or how confident the reviewer feels. Definitions are behavioral, not domain-specific. This file sets what each level *means*; the accept / defer / convergence mechanics that decide whether a landing may proceed are owned by `dual-track-review-gate.md` — apply both together.
|
|
10
|
+
|
|
11
|
+
- **P0 — must block landing.** Security breach, data loss/exposure, irreversible destructive action, auth / permission / tenant bypass, money/quota error, or production outage. These stay P0 *even when a later mitigation exists* — the ability to rotate keys, restore a backup, refund, or re-run a job does NOT downgrade enduring harm (exposure already happened, trust/auditability already breached). A P0 clears only by an applied fix, rollback/removal of the change, or an explicit risk-owner exception (not a routine owner sign-off) that records mitigation plus a tracking item per `dual-track-review-gate.md`. "Mitigation + ticket" must never be a rubber stamp on a known catastrophic risk.
|
|
12
|
+
- **P1 — should block landing.** Serious correctness, reliability, regression, privacy, or user-trust failure with a *genuine* recovery path — defined narrowly as complete restoration with no external exposure, no tenant/user-trust breach, no lost auditability, no unrecoverable money/quota effect, and no required customer or security incident response. Clears by an applied fix or an explicit deferred acceptance recording reason + residual risk; it does not silently pass. If a failure meets the P0 categories above, it stays P0 — you cannot reclassify it P1 by asserting a recovery path.
|
|
13
|
+
- **P2 — worth fixing, not landing-blocking.** Localized bug, maintainability issue, confusing copy, weak-but-present test, minor edge case. May be deferred freely; track for the next pass.
|
|
14
|
+
|
|
15
|
+
Scale reconciliation: some gates add an optional **P3** tier for nits / informational notes — treat it as a non-blocking sub-tier of P2. Structured finding schemas that accept only `P0|P1|P2` (e.g. `code-review`) fold P3 into P2.
|
|
16
|
+
|
|
17
|
+
Same tiers, different input: the P0/P1/P2 blocking semantics here are the canonical definition, and they are reused for **test-case priority** in `test-artifact-management` (P0 = must pass before release, P2 = nice-to-have). The difference is only the *input* that picks the tier — a review finding's tier comes from the defect's consequence/reversibility (above); a test case's tier comes from scenario centrality (primary/security path → P0, edge → P1/P2). The tier meaning (P0 blocks shipping — "landing" for a finding, "release" for a test case — P2 does not) is identical, so the two never need separate definitions.
|
|
18
|
+
|
|
19
|
+
Notes:
|
|
20
|
+
- When unsure between two levels, state the failure path and let consequence decide; do not average to the middle.
|
|
21
|
+
- "Style / preference" with no failure path is not a finding at any level — see noise below.
|
|
22
|
+
- Evidence quality is not severity. If a claimed P0/P1 lacks a concrete failure path, require clarification or mark the review **inconclusive** — do NOT lower the severity just because the report is under-specified. An under-described auth bypass is an inconclusive-blocking escalation, not a quietly-downgraded P2.
|
|
23
|
+
|
|
24
|
+
## Finding Quality
|
|
25
|
+
|
|
26
|
+
Every finding must carry the first three; the fourth is required when it can be known:
|
|
27
|
+
|
|
28
|
+
1. **failure_path** — the concrete way it breaks or gets exploited, specific enough to reproduce or trace ("on duplicate callback the row is written twice"), not a category ("idempotency issue").
|
|
29
|
+
2. **impact** — who/what is harmed and how badly; this is what sets the severity above.
|
|
30
|
+
3. **evidence** — a code path, a violated invariant, a reachable precondition, a threat-model step, a prior-incident pattern, or a reproduction. A *clean reproduction is not required* — hard-to-reproduce classes (races, prompt-injection, auth edge cases, distributed flakiness, supply-chain) are legitimately evidenced by a reachable code path plus plausible exploitability. What is rejected is speculation with NO code-path, invariant, or threat-model basis.
|
|
31
|
+
4. **smallest_fix** — the smallest credible change that closes it (not a redesign). When the reviewer can prove the breakage but cannot safely prescribe the patch (security, concurrency, infra, product-policy), use `owner investigation required` instead. Missing fix guidance lowers actionability; it does not erase a proven finding.
|
|
32
|
+
|
|
33
|
+
Noise, to be rejected before it enters a review result:
|
|
34
|
+
- vague approval/disapproval ("LGTM", "looks risky") with no failure path;
|
|
35
|
+
- restating what the code does without naming a failure;
|
|
36
|
+
- pure speculation with no code-path, invariant, or threat-model basis (distinct from an evidence-backed risk that merely lacks a clean repro — that is a real finding, and an uncertain high-impact one routes to `inconclusive`/escalation, never to noise);
|
|
37
|
+
- scope-expansion suggestions ("while you're here, also rewrite X") unless they close a named failure;
|
|
38
|
+
- duplicate findings that restate one root cause as several.
|
|
39
|
+
|
|
40
|
+
**Validity contract (this file owns this; the gate owns the consequences).** A result is one of three states:
|
|
41
|
+
- *findings* — one or more entries each meeting the bar above;
|
|
42
|
+
- *no-findings* — a valid, strong result ONLY when accompanied by an inspection record: scope reviewed, files/diffs actually inspected, any checks/commands run, explicit limitations, and reviewer/tool attribution. An empty list with no inspection record is `inconclusive`, not "no findings";
|
|
43
|
+
- *inconclusive* — empty/partial/tail-only/timed-out/unparsable output, an unverified claimed-blocking finding, or a no-findings result lacking the inspection record.
|
|
44
|
+
|
|
45
|
+
`dual-track-review-gate.md` owns what each state does to a landing (block / accept / defer / rerun); this file owns what makes each state valid.
|
|
46
|
+
|
|
47
|
+
## Non-Goals (route, do not duplicate)
|
|
48
|
+
|
|
49
|
+
This file standardizes the *output* of a review (severity + finding shape + validity), not its *depth*. Output conformance is not review depth: a finding set that fits this shape but was produced by a shallow skim is still a weak review. So before applying this standard, **name the review lens** — pick the owner/checklist that matches the change's risk (the routes below); if none applies, state explicitly what lens you used to decide what to look for. Then do NOT grow this file into a bug taxonomy, security checklist, or test strategy — route those to their owners:
|
|
50
|
+
|
|
51
|
+
- which risk classes a change carries / which gates apply → `feature-risk-router`
|
|
52
|
+
- what tests miss, assertion strength, scenario coverage → `testing-strategy`
|
|
53
|
+
- adversarial / chaos failure modes and when two review passes are required → `dual-track-review-gate.md`
|
|
54
|
+
- stack-specific pitfalls → the per-stack dev skills
|
|
55
|
+
- CLI/tool invocation mechanics for a specific reviewer → e.g. `code-review`
|
|
56
|
+
|
|
57
|
+
If a candidate rule names specific bug classes, it belongs in one of those owners, not here.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Review Rubric — Counterexample-Oriented
|
|
2
|
+
|
|
3
|
+
Phase 1 material (design source: `docs/skill-extraction-optimization-design.md`). This rubric structures the **review pass** of the dual-track gate so it hunts for counterexamples instead of agreeing. It does not replace `references/dual-track-review-gate.md` — that reference still owns the run-BOTH-tracks requirement, convergence standard, and lens-independence rules. This rubric is the question set the review pass works through; the challenge pass stays adversarial per its own runbook.
|
|
4
|
+
|
|
5
|
+
The failure this prevents: an LLM reviewer that answers "looks reasonable, no problems" — confident agreement that misses over-firing, under-firing, leakage, and authority overreach. LLM-as-judge has known position / verbosity / self-enhancement biases, so a clean review is one evidence class, not a verdict.
|
|
6
|
+
|
|
7
|
+
## Rubric — every L1 / L2 review answers all of these
|
|
8
|
+
|
|
9
|
+
| Dimension | Required question |
|
|
10
|
+
|---|---|
|
|
11
|
+
| Provenance | Can every rule trace back to evidence? |
|
|
12
|
+
| Generalization | Is it generalized from the specific case into a reusable capability, not copied? |
|
|
13
|
+
| Boundary | Are applies / does-not-apply written explicitly? |
|
|
14
|
+
| Routing | Could it mis-fire or steal another owner's task? |
|
|
15
|
+
| Cognitive load | Could a reference, example, or eval carry this instead of the entrance? |
|
|
16
|
+
| Privacy / R0 | Any business noun, internal host, private path, person, or source-shaped example? |
|
|
17
|
+
| Behavior | Which observable agent behavior does it change? |
|
|
18
|
+
| False positive | Which scenarios would over-fire? |
|
|
19
|
+
| False negative | Which scenarios would it miss? |
|
|
20
|
+
| Regression | Is there a should-trigger / should-not-trigger case? |
|
|
21
|
+
| User authority | Does it decide on the user's behalf where it should ask? |
|
|
22
|
+
| Rule budget | Could this avoid adding a new hard rule? |
|
|
23
|
+
|
|
24
|
+
## Reviewer prompt direction — find counterexamples, do not affirm
|
|
25
|
+
|
|
26
|
+
Do NOT ask "is this change reasonable?". Require the reviewer to produce concrete failing scenarios:
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
Find the scenarios where this skill change would mis-fire, under-fire, bloat the rule
|
|
30
|
+
set, fail sanitization, collide with another owner's boundary, override user sovereignty,
|
|
31
|
+
become un-verifiable in behavior, or duplicate/contradict an existing skill.
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
A review that returns no counterexamples must say *why each rubric row is clear*, not just "no issues found". An empty finding list with no per-row reasoning is inconclusive, not a pass.
|
|
35
|
+
|
|
36
|
+
## The rubric is necessary, not sufficient
|
|
37
|
+
|
|
38
|
+
- For an L1 change, the rubric review plus the recorded challenge row and behavioral-evidence row close the gate.
|
|
39
|
+
- For an L2 change, a clean review is explicitly NOT enough on its own: automatic R0 (`references/r0-leakage-audit.md`), deterministic checks (`check-ccl-skills.sh`, `git diff --check`, the routing analyzer where applicable), and behavioral regression (≥1 should-trigger + ≥1 should-not-trigger) must also pass.
|
|
40
|
+
- Treat any LLM reviewer output — supporting or critical — as hypothesis-grade: a "looks correct" does not raise the draft's evidence grade, and a finding stays valid until specifically verified or refuted (see the Core Rules on LLM-consultation evidence).
|