@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,71 @@
|
|
|
1
|
+
# E2E And Real-Flow Testing
|
|
2
|
+
|
|
3
|
+
Use this for critical user journeys, cross-service flows, release smoke, browser workflows, and runtime integration that lower-level tests cannot prove.
|
|
4
|
+
|
|
5
|
+
## When E2E Is Worth It
|
|
6
|
+
|
|
7
|
+
- Login/onboarding/payment/publish/export/import or other primary user flows.
|
|
8
|
+
- Permission-sensitive or role-sensitive workflows.
|
|
9
|
+
- Cross-service state change where API, UI, worker, and persistence must align.
|
|
10
|
+
- Browser-specific interaction such as routing, forms, uploads, keyboard/safe-area behavior, dialogs, or responsive layout.
|
|
11
|
+
- Release smoke for the highest-risk changed path.
|
|
12
|
+
|
|
13
|
+
Before adding a new E2E test, create or update the scenario matrix in `scenario-testing.md`. Keep only the cross-boundary proof in E2E; push deterministic permutations down to unit, contract, component, or integration tests.
|
|
14
|
+
|
|
15
|
+
## Browser E2E Rules
|
|
16
|
+
|
|
17
|
+
- Use stable selectors or accessible labels; avoid brittle text-only or CSS-position selectors.
|
|
18
|
+
- Prefer accessibility-tree element references or role/name selectors when the browser tool supports them; they survive layout changes better than coordinates or CSS paths.
|
|
19
|
+
- Re-read visible state after every action that should change the page.
|
|
20
|
+
- Wait for explicit conditions: URL transition, visible text, DOM state, event, network idle, persisted state, or backend signal.
|
|
21
|
+
- Avoid fixed sleeps except as a last resort with a clear reason.
|
|
22
|
+
- Use isolated browser/session contexts for different users or roles.
|
|
23
|
+
- Save authenticated state only when the test is not about login.
|
|
24
|
+
- Capture console errors, failed network requests, screenshots/traces/video when useful.
|
|
25
|
+
- Use network interception only to control nondeterminism or assert payloads; do not mock away the contract that the E2E test is meant to prove.
|
|
26
|
+
- **Playwright 1.5x baseline (Microsoft, ongoing 2024-2026)** is the current default-recommendation browser-E2E framework for new web testing. Key features to use deliberately, per `playwright.dev` docs: (a) **Trace Viewer** is the load-bearing debugging surface — every CI failure should produce a `trace.zip` artifact. Set `trace: 'retain-on-failure'` (not `'on-first-retry'`) when CI runs with `retries: 0` for deterministic gating — `'on-first-retry'` produces no trace unless the test actually retries, leaving teams with zero diagnostics on first-failure-then-fix-the-flake debugging cycles. Reviewers open the artifact locally or via `trace.playwright.dev` to step through actions, screenshots, network, and console without re-running the test. (b) **Soft assertions** via `const softExpect = expect.configure({ soft: true })` let one test report multiple failures rather than stopping at the first — useful for state-snapshot assertions where the team wants the whole-page diff in one run, NOT a substitute for the "one test, one behavior" discipline. (c) `toMatchAriaSnapshot()` (Playwright 1.49+) is the structured accessibility-tree assertion — call it on a locator (`expect(page.locator('main')).toMatchAriaSnapshot(...)` or `await page.locator(...).ariaSnapshot()`), preferred over DOM-string snapshots for resilience to non-semantic markup changes. (d) **Component testing** (`@playwright/experimental-ct-{react,vue,svelte}`) is still labeled experimental — use Vitest browser mode for component-level tests until Playwright component-test API stabilizes. (e) **Projects** in `playwright.config.ts` define run matrices (browser × device emulation × baseURL × config variant) and produce one merged HTML report. Note: Projects ≠ sharding — sharding is a separate `--shard=k/n` mechanism that splits a single project's tests across multiple workers/machines; teams often combine both (projects for the matrix, sharding for parallelism per project). Pin worker count and shard count for CI determinism, do not let auto-detect choose. Routing the per-stack Playwright config implementation goes to `web-react-dev/references/web-quality-release.md`; this skill owns the test-layer policy.
|
|
27
|
+
|
|
28
|
+
## Runtime QA Sweep
|
|
29
|
+
|
|
30
|
+
Use this only as bounded runtime acceptance / release-smoke evidence for the scenario-matrix paths whose risk needs runtime proof — it is not exploratory QA and cannot close coverage on its own; push deterministic permutations down to unit/contract/component/integration tests. When smoke-testing a running web surface, sweep these bug categories (not only the one happy path); several are invisible in the rendered UI unless you look:
|
|
31
|
+
|
|
32
|
+
- **Functional:** dead controls (click does nothing), broken or wrong-destination links, form validation that is missing or bypassable, state not persisting across refresh / back-button, and double-submit or stale-data races.
|
|
33
|
+
- **Console / network:** check the console *and* the network panel after interactions, not only on load. Watch uncaught JS exceptions, failed 4xx/5xx user-path requests, and the often UI-silent classes — CORS failures, mixed content (an HTTP resource on an HTTPS page), CSP violations, and deprecation warnings (these surface in the console and frequently as blocked/failed network entries). **Classify before calling any of them a defect** (per the skill's verification-warning rule): product-owned exceptions, failed supported-user-path requests, enforced CSP breaks, blocked mixed content, and unexpected CORS on a supported environment are defects; CSP report-only entries, expected negative/preflight denials, dev-only proxy noise, and third-party deprecations outside the team's control are observations unless they block a supported user path or the current slice caused them — record owner + residual risk rather than failing the sweep blindly.
|
|
34
|
+
- **Performance:** cumulative unexpected layout shift across the page lifecycle (CLS — e.g. content jumping after a late-loading image or ad, not only after first paint), and request-pattern smells (unexpected growth versus baseline, duplicate requests, N+1 fan-out, unbounded polling, or unbatched fetches). A high request count alone is not a smell — dashboards, feeds, maps, and streaming surfaces legitimately make many requests with documented pagination or parallel panels.
|
|
35
|
+
- **Auth boundary:** what the surface does when logged out and across the relevant user roles, not only the authenticated happy path. **Run these only against staging, synthetic tenants, or read-only / dry-run paths.** Verify privileged or destructive actions by their guardrails — visibility, disabled state, confirmation copy, permission denial, and audit metadata — or via a dry-run / mocked request; do NOT execute the privileged/destructive action itself (irreversible writes, account/session changes, money/quota mutations, deletes, admin repairs) against real data as part of a sweep. A genuine end-to-end test of such an action is a separately-authorized E2E case against synthetic data, never a sweep step.
|
|
36
|
+
|
|
37
|
+
Capture evidence per the `Browser E2E Rules` above (console/network/screenshot/trace). Preserve every runtime failure or ambiguous red signal as evidence and route it through `defect-diagnosis` (label "confirmed defect" only after triage — never drop or greenwash an unconfirmed failure). Proven categories belong in the `scenario-testing.md` matrix and lower-layer tests, not re-verified by hand every release.
|
|
38
|
+
|
|
39
|
+
A sweep is **report-and-route, not fix-in-place**: document each finding (severity, category, expected-vs-actual, repro evidence) and route it through `defect-diagnosis` for triage — only confirmed defects proceed to cause + fix + regression evidence; observations (CSP report-only, expected denials, third-party deprecations, ambiguous reds) stay recorded with owner, residual risk, and follow-up path, not treated as defects before triage. During the sweep, treat product/runtime code as read-only (external-state mutation stays governed by the auth-boundary rule above — controlled synthetic/dry-run submits for the functional checks are fine; unrequested or real-data destructive mutation is not): you may write evidence artifacts and scoped QA/test files when they are part of the requested deliverable, but do not make a finding green by patching product code, so a read-only QA / acceptance pass cannot silently become unrequested code changes. If the current-turn request explicitly asks for QA *and* fixing, close the sweep evidence first, then start a separate `defect-diagnosis` phase before any product-code edit.
|
|
40
|
+
|
|
41
|
+
## Backend/API Real Flows
|
|
42
|
+
|
|
43
|
+
- Assert response envelope, canonical error code, trace/log id, persisted state, emitted event, and dependency outcome.
|
|
44
|
+
- Include setup and teardown or use isolated test tenants/namespaces.
|
|
45
|
+
- Make idempotency, retry, and compensation behavior visible.
|
|
46
|
+
- Treat live-data scripts, production-like IDs, replay tools, and tests that only log or panic on error as diagnostic until they are isolated, repeatable, and assertion-based.
|
|
47
|
+
|
|
48
|
+
## Verify The World, Not The Self-Report
|
|
49
|
+
|
|
50
|
+
When the subject under test is an agent's or automation's own output — a file it says it wrote, a command it says it ran, a state it reports — the assertion re-observes the world independently through **read-only inspection of durable effects**: re-read the file from disk, query the authoritative persisted state, and assert that files the run should not have touched are byte-identical. An audit/log record counts only when it is emitted by an authoritative subsystem **outside the subject's own write/control boundary** and is correlated to the operation and the resulting state — a success record the subject wrote itself is a durable self-report, not evidence; when no independent durable-state observation is safely available, classify the check as incomplete rather than pass it on the record. Re-run a reported command only when it is known read-only or idempotent and confined to a test-owned resource — re-running a deployment, migration, payment, or retry mutates state a second time and still cannot show the original run happened. A keyword probe over the agent's own transcript or summary is not evidence — it lets a cheating or mistaken agent pass. Such tests own their resources: create the harness inside the test and dispose it in a teardown hook that runs on cooperative failure, retry, and in-process timeout — and, because a hard-killed runner never reaches teardown, back durable or external resources with an out-of-process cleanup: tag them with the run id and a TTL and run a bounded janitor/finalizer keyed to that run, so repeated CI runs cannot leak state or retain sensitive test data. Put shared fixtures in a plain helper module rather than importing another spec (re-registering its cases duplicates real runs). The delegation-side rule (do not accept a sub-agent's report as proof) is owned by `multi-agent-delegation`.
|
|
51
|
+
|
|
52
|
+
## Published Entry Path
|
|
53
|
+
|
|
54
|
+
When the deliverable ships as a built or installed artifact — a package `bin`, a bundled worker or non-index runtime entry, a plugin loaded by a real loader, a container image — at least one smoke must enter through that published path: the built artifact under the plain runtime, the real loader boot, the installed command. Dev/source-path runners, hot loaders, and hand-mounted test compositions mask module-resolution failures, settle races, and swallowed load errors that only the shipped path exposes; this is the "green unit tests, broken product on start" class. Mock only external services or nondeterministic inputs in that smoke and assert model-visible request/log, durable state, or user-visible output; a genuinely missing config must exit non-zero.
|
|
55
|
+
|
|
56
|
+
## E2E Scope Control
|
|
57
|
+
|
|
58
|
+
- Do not reproduce every unit branch through E2E.
|
|
59
|
+
- Keep E2E flows few, stable, and tied to user/business risk.
|
|
60
|
+
- Prefer one happy path plus high-risk negative paths over many shallow click-throughs.
|
|
61
|
+
- A click-through without assertions is not E2E evidence.
|
|
62
|
+
- If a scenario can be proven with a stable API/contract/integration test and only needs one browser smoke for confidence, do not duplicate all permutations in the browser.
|
|
63
|
+
|
|
64
|
+
## Failure Handling
|
|
65
|
+
|
|
66
|
+
If E2E fails:
|
|
67
|
+
|
|
68
|
+
- Treat it as a real signal until proven invalid.
|
|
69
|
+
- Preserve trace, screenshot, console/network errors, payload, and environment.
|
|
70
|
+
- Route through `defect-diagnosis`.
|
|
71
|
+
- Do not replace the scenario with a thinner mock-only test unless the E2E scenario was invalid or redundant.
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# Architecture Fitness Functions
|
|
2
|
+
|
|
3
|
+
把架构 invariants 写成**自动化测试**,每次 build / CI 跑 — 架构不再靠口头约定 + 文档守护。
|
|
4
|
+
|
|
5
|
+
不替代普通单测 / e2e;这是**结构性约束**的测试(无循环依赖 / 分层不越界 / latency budget / etc)。
|
|
6
|
+
|
|
7
|
+
## 外部来源
|
|
8
|
+
|
|
9
|
+
- **Neal Ford / Rebecca Parsons / Patrick Kua**, *Building Evolutionary Architectures* (O'Reilly, 1st ed 2017) + **+ Pramod Sadalage** (2nd ed Dec 2022) — fitness function 定义 + 分类
|
|
10
|
+
- **ThoughtWorks Tech Radar** — "Architecture Fitness Functions"(Trial → Adopt)
|
|
11
|
+
- **ArchUnit / NetArchTest / Dependency-Cruiser** — 工具示例
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## §1 定义
|
|
16
|
+
|
|
17
|
+
**Fitness function**:可执行的测试 / 检查,判断**架构是否仍符合某个所声明的不变量**。失败 = 架构 drift / 违反预设。
|
|
18
|
+
|
|
19
|
+
与普通测试区别:
|
|
20
|
+
- **单测 / e2e**:测**业务正确性**("用户能否完成 X 流程")
|
|
21
|
+
- **fitness function**:测**结构正确性**("X 模块是否仍是无依赖 leaf;p99 是否仍 < 100ms;DAL 是否仍唯一 DB 访问出口")
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## §2 分类(精选自 Ford et al. taxonomy)
|
|
26
|
+
|
|
27
|
+
Ford 等原书有更多维度(Temporal / Intentional vs Emergent / Domain-specific / Coverage / Proactivity 等;2nd ed 2022 reframe 为 Scope/Cadence/Result/Invocation/Proactivity/Coverage)。本 ref 只取最高 ROI 的 4 个常用维度:
|
|
28
|
+
|
|
29
|
+
| 维度 | 选项 | 含义 |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| **Atomic vs Holistic** | atomic | 测单个 attribute(如纯 latency)|
|
|
32
|
+
| | holistic | 多 attribute 组合下的行为(latency 在 50% CPU 时仍 < 100ms)|
|
|
33
|
+
| **Triggered vs Continuous** | triggered | CI / commit / merge 触发 |
|
|
34
|
+
| | continuous | 生产持续监控(与 §5 集成)|
|
|
35
|
+
| **Static vs Dynamic** | static | 无需运行代码(grep / AST / dep graph)|
|
|
36
|
+
| | dynamic | 需运行(load test / chaos)|
|
|
37
|
+
| **Automated vs Manual** | automated | CI 卡点 |
|
|
38
|
+
| | manual | code review checklist / 季度审计 |
|
|
39
|
+
|
|
40
|
+
本 ref 重点:**triggered + static / dynamic + automated**(最高 ROI),manual 类只在 automated 不可行时用。
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## §3 典型 fitness function 例
|
|
45
|
+
|
|
46
|
+
### 3.1 模块依赖 / 分层(static + automated)
|
|
47
|
+
- 无循环依赖:`go vet` / `dep-cruiser` / ArchUnit `slicesShouldBeFreeOfCycles()`
|
|
48
|
+
- 分层不越界:`domain` 不依赖 `infrastructure`;`infrastructure` 不能 import `web` handler
|
|
49
|
+
- 实现:ArchUnit (Java) / dep-cruiser (JS/TS) / go-arch-lint (Go) / pytest-arch (Python)
|
|
50
|
+
|
|
51
|
+
### 3.2 数据访问出口(static + automated)
|
|
52
|
+
- **Invariant**:DB 操作只能经特定模块(如 `repository/` 包);HTTP 出口只能经特定 client 包
|
|
53
|
+
- **Go 例**:linter 检查其它包不能 `import "database/sql"` / ORM 包;业务代码不能 `import "net/http"`
|
|
54
|
+
- **其它栈类比**:Python — 检查非 DAL 模块不 `import sqlalchemy`;JS/TS — eslint rule 阻 `import 'pg'` 在 service 层外
|
|
55
|
+
|
|
56
|
+
### 3.3 性能 budget(dynamic + automated)
|
|
57
|
+
- p99 latency < 100ms:CI 跑 benchmark / load test 卡 budget
|
|
58
|
+
- bundle size < N kB:webpack-bundle-analyzer / size-limit CI 卡
|
|
59
|
+
- cold start < N ms:benchmark + 阈值(适用 serverless / CLI / mobile startup / container scale-to-zero / plugin host;常驻 backend 服务不必)
|
|
60
|
+
|
|
61
|
+
### 3.4 复杂度上限(static + automated)
|
|
62
|
+
- 单 function 圈复杂度 ≤ 10:gocyclo / radon / eslint complexity rule
|
|
63
|
+
- 单文件行数 ≤ 500:linter rule
|
|
64
|
+
- API 总数 ≤ N:API gateway config 检查
|
|
65
|
+
|
|
66
|
+
### 3.5 安全 invariants(static + automated)
|
|
67
|
+
- 无硬编码 secret:gitleaks / trufflehog / 自写 grep
|
|
68
|
+
- HTTPS only:lint config
|
|
69
|
+
- SQL 不拼接:linter(sqlc / 检查 ORM 使用)
|
|
70
|
+
|
|
71
|
+
### 3.6 接口稳定性(dynamic + automated)
|
|
72
|
+
- OpenAPI breaking-change 检测:oasdiff / openapi-diff
|
|
73
|
+
- proto breaking-change:buf breaking
|
|
74
|
+
- DB migration 向后兼容:linter(pt-online-schema-change 兼容性)
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## §4 实现路径
|
|
79
|
+
|
|
80
|
+
### 4.1 起手 — 3 个原则
|
|
81
|
+
|
|
82
|
+
1. **每个 fitness function 必有 owning decision record**(ADR 或同等 reason 记录):function 测的是哪个决定的 invariant?没记录 = function 易被随便删。新发现的 guardrail 可先以 reason comment 起步,**当它编码 material 架构 invariant 时 promote 到 ADR**
|
|
83
|
+
2. **Fail loud, fail early**:CI 红,不只是 warning;本地 pre-commit 也跑
|
|
84
|
+
3. **每个 function 必有名字 + reason**:commit message / config 写明"why this function exists",避免后人删时不知 trade-off
|
|
85
|
+
|
|
86
|
+
### 4.1.1 规范到健康度检查
|
|
87
|
+
|
|
88
|
+
团队研发规范要能落成项目健康度检查,而不是只靠人工 review。把每条规范先分类:
|
|
89
|
+
|
|
90
|
+
| 类型 | 适合检查的内容 | 执行器 |
|
|
91
|
+
|---|---|---|
|
|
92
|
+
| Deterministic | 文件/目录、IDL、生成产物、配置、依赖锁、CI、覆盖率、命令、日志字段、trace 字段 | 脚本、lint、测试、CI |
|
|
93
|
+
| Agent review | 分层是否绕过、领域边界、组件职责、测试有效性、Spec 对齐、异常/降级语义 | bounded agent prompt + evidence packet |
|
|
94
|
+
| Manual | 需要真实账号、真机、外部审批、生产窗口或人工判断的项 | 手工证据 + owner + 到期时间 |
|
|
95
|
+
| Not automatable yet | 当前没有稳定输入或工具的项 | 缺口记录 + 自动化计划 |
|
|
96
|
+
|
|
97
|
+
健康度报告至少包含:规则 id、规范来源、severity、检查类型、执行命令或 agent prompt、证据、结果、owner、CI 行为。结果只能是 `pass`、`fail`、`blocked`、`inconclusive` 或 `not_applicable`。CI 只卡 `blocker` 或团队已声明卡关的规则;warning/info 进入报告并要求责任人,不伪装成通过。
|
|
98
|
+
|
|
99
|
+
脚本负责事实,agent 负责判断。不要让 agent 去猜文件是否存在、覆盖率是多少、CI 是否配置;也不要让脚本用 grep 代替架构判断。任何检查类型缺少具体证据时都不得写成 `pass`。`agent_review` 没有具体证据、超时、范围不足或只返回泛泛结论时,结果必须是 `inconclusive`。`manual` 在人工证据到位前必须是 `blocked` 或 `inconclusive`;`not_automatable_yet` 必须是 `blocked` 或 `not_applicable`,并记录缺口和自动化计划。
|
|
100
|
+
|
|
101
|
+
字段存在不等于链路正确。grep/lint 只能证明日志字段、trace 字段、请求头或配置项存在;跨 HTTP/RPC/MQ/worker/client 的传播必须由集成测试、E2E/host smoke、运行时观测证据,或明确的 `agent_review` 判断补足后才能写成 `pass`。
|
|
102
|
+
|
|
103
|
+
**grep 不够时优先 AST;标准库 AST 是常见零依赖路径——但别当反射、也别因没装第三方工具就退回 grep smell 或 defer 成 `not_automatable_yet`。** 代码形态类确定性检查("边界是否返回 ad-hoc error dict"、"导出函数是否传 ctx"等)用 grep 既会被注释/字符串内同形文本误匹配、又易被改写绕过,只能算 `smell-grep / advisory`(命中=待查、干净≠合规)。要做成 `deterministic`:**先看现有工具/lint 选项 + owner 决定**;没有合适第三方工具时,**Python `ast`、Go `go/ast` 是 stdlib 零依赖路径**(JS/TS 的 TypeScript compiler API / ESLint / Babel parser **不是 stdlib**,仅在仓里已装时用,否则记一个 tooling 决定、别号称零依赖)。自写检查器**有真实成本**(正确性、parser 边界、维护——看似简单的检查可能要多轮才稳),只对**窄的、高价值的枚举不变量**这么做,并配 test harness(正例命中、反例不误报、坏 scope 报 `inconclusive` 不报 clean);需要完整类型/数据流分析才能判的形态,**保持 `blocked`/`inconclusive` + 自动化计划**,别硬 ship 一个半成品 linter。AST 只对**枚举形态**确定,把覆盖边界(抓哪些、哪些是 accepted residual)写进文档与 result-schema,干净跑只代表"未发现枚举形态"。
|
|
104
|
+
|
|
105
|
+
### 4.1.2 语言基本规范 conformance — 示例 fitness functions
|
|
106
|
+
|
|
107
|
+
承载 `service-language-basics` 规范的可机判子集。本轮 ship **确定性 AST 检查**(stdlib,不依赖 semgrep/ast-grep):解析 AST → 不误匹配注释/字符串里的同形文本、能抓 grep 抓不到的形态。**确定性边界(诚实)**:只对下列**枚举形态**确定;"是否真伪造错误 / 是否真传 ctx"语义上不可判定,干净跑 = "未发现枚举形态",**非完全合规**。ccl-skills 只 ship 可采纳件;**机械 firing 发生在消费仓**(接 pre-commit / CI),ccl-skills 对外部仓无强制力 → opt-in,未采纳前对应规范仍是 salience + 人 review 兜底。
|
|
108
|
+
|
|
109
|
+
**LB-1 — Python 在边界用返回值伪造错误**(check_type:`deterministic`,限枚举形态)
|
|
110
|
+
|
|
111
|
+
- owner:`python-service-dev`;severity:warning → blocker(消费仓采纳后定)。
|
|
112
|
+
- 脚本:`python3 skills/testing-strategy/scripts/lang-basics-ast-check.py <transport_paths>`(stdlib `ast`,零三方依赖)。配套 test harness `lang-basics-ast-check.test.sh`。
|
|
113
|
+
- scope:只传 transport / handler / view / router 路径;**pure / domain 层豁免**(那里允许 `Result` / `Either`)。
|
|
114
|
+
- 抓的形态(含旧 grep 抓不到的):`{"success"/"ok": False}`(任意引号)、`{SUCCESS: False}`(常量键)、`dict(success=False)`、`return (data, err/error/exc/e)`、`return (None, <msg>)`。**注释 / 字符串内同形文本不误报**(AST 不看),故无需 `# lb-allow` 抑制机制。
|
|
115
|
+
- 残留未覆盖(诚实):ad-hoc `{"code":...,"message":...}`(与合法 envelope 无类型/流分析难分,不抓,避免误伤)、经变量别名传递的 error 对象;比 return root / 一层构造器 / `(body, status)` tuple 更深的嵌套或动态构造的 fake dict 不抓——这是枚举形态边界,不是 bug。
|
|
116
|
+
- 退出码:`1`=命中(fail);`2`=scope 无效 / 语法错(inconclusive,绝不报 clean);`0`=未发现枚举形态(**≠完全合规**)。
|
|
117
|
+
- result-schema:`{"rule_id":"py.error.boundary_return_fake","severity":"warning","check_type":"deterministic","status":"pass|fail|inconclusive","evidence":["file:line"],"owner":"python-service-dev"}`。
|
|
118
|
+
|
|
119
|
+
**LB-2 — Go ctx 传播**(check_type:`deterministic` proxy)
|
|
120
|
+
|
|
121
|
+
- owner:`go-microservice-dev`;severity:warning → blocker(按层)。
|
|
122
|
+
- 脚本:`go run skills/testing-strategy/scripts/lang-basics-go-check.go <dir>`(go/ast;**目录用 `go run`,单文件先 `go build`** —— `go run` 会把尾随 `.go` 当成源文件)。配套 test harness `lang-basics-go-check.test.sh`。
|
|
123
|
+
- 抓的形态:非 `main`/`init` 函数里调 `context.Background()` / `context.TODO()` —— 常见的"丢了 caller 的 ctx、自造 root ctx"信号(丢 cancel/deadline/trace 传播)。解析 per-file import 名,**alias(`import ctx "context"`)与 dot-import 都能抓**。`_test.go` 跳过(目录遍历与显式文件参数都跳);`vendor`/`.git`/`testdata`/`node_modules` 跳过。
|
|
124
|
+
- **proxy 边界 + 已接受残留(诚实)**:低误报代理,非完整"导出 IO 函数缺 ctx 形参"检查(需 `go/types`)。**接受的残留**(修了反而误伤合法用法):① `main`/`init` 内的闭包/goroutine 调 Background 不报(常是合法 background worker);② 局部变量 shadow 了 context alias / dot-import 的 `Background` 名可能误报。干净跑 ≠ 每个函数都正确传 ctx。
|
|
125
|
+
- 退出码同 LB-1。
|
|
126
|
+
|
|
127
|
+
### 4.1.3 客户端 language-basics conformance — 示例 fitness functions
|
|
128
|
+
|
|
129
|
+
承载 `client-language-basics`(spec 006)规范的可机判子集,覆盖 `web-react-dev` / `app-cross-platform-dev` / `miniapp-product-dev` / `terminal-cli-dev` 四个客户端 surface 栈。把 Go/Python 的 language-basics(分层=依赖方向、错误契约、ctx/取消传播)映射到客户端 analog。
|
|
130
|
+
|
|
131
|
+
**关键诚实(与 005 不同的客户端现实)**:
|
|
132
|
+
|
|
133
|
+
- **生态 linter 是默认执行器,非组织自写脚本**。不像 Go/Python(`go/ast`/`ast` stdlib 零依赖、且 LB-1/LB-2 抓的是 `go vet`/`ruff` 漏掉的窄不变量),客户端 language-basics **多数已被成熟生态 linter 覆盖**:JS/TS 的 `eslint-plugin-react-hooks` + `@typescript-eslint` + `dependency-cruiser`、Dart 的 `dart analyze`+`flutter_lints`、Kotlin 的 detekt+Android Lint、Swift 的 SwiftLint。**故客户端 conformance 的 deterministic 那半 = enforce 这些生态规则的 config**,不重写成自写检查器(重复劳动 + monotonic)。
|
|
134
|
+
- **JS/TS / Dart / Kotlin / Swift 的 AST 都不是 stdlib**:自写检查器要么依赖消费仓 toolchain(TS compiler / custom_lint / detekt custom rule / SwiftLint custom rule)→ **记 tooling 决定,不号称零依赖**;要么退化 source-text 扫读(advisory-leaning,命中=待查)。**不 ship 半成品自写 parser**(见 §4.1.1)。
|
|
135
|
+
- 每栈 analyzer 默认规则集**很薄**(RN 默认仅 2 条 hooks 规则;SwiftLint 安全规则多 opt-in;Dart lints 默认 `info` 严重度不卡 CI,需 `analyzer>errors:` 升级;detekt 多条 inactive)→ **"开/升级 baseline" 本身是每栈 setup 义务**,写进消费仓 conformance config。
|
|
136
|
+
|
|
137
|
+
**A. 全栈 STD 覆盖(开/升级生态规则即可,禁自写)** — 错误处理(空/泛 catch、typed throw)+ 空安全(强解包禁令)两族全栈 STD:
|
|
138
|
+
|
|
139
|
+
| 栈 | deterministic 执行器(生态规则,需 enable/config) |
|
|
140
|
+
|---|---|
|
|
141
|
+
| web/RN(JS/TS) | `react-hooks/rules-of-hooks`·`exhaustive-deps`·`set-state-in-effect`·`error-boundaries`(v6+);`@typescript-eslint/no-explicit-any`·`no-floating-promises`·`no-misused-promises`·`only-throw-error`(typed,需 `parserOptions.project`);`no-empty`;tsconfig `strict`(+`noUncheckedIndexedAccess`);dep-cruiser `forbidden`/`no-circular`、ESLint `no-restricted-imports`/`no-restricted-globals` |
|
|
142
|
+
| Flutter/Dart | `flutter_lints` baseline + `empty_catches`·`avoid_catches_without_on_clauses`·`only_throw_errors`·`use_rethrow_when_possible`·`unawaited_futures`·`discarded_futures`·`cancel_subscriptions`·`close_sinks`·`use_build_context_synchronously`·`avoid_dynamic_calls`;**`analyzer>errors:` 升级严重度**(关键 gotcha) |
|
|
143
|
+
| Android/Kotlin | detekt `exceptions/*`(SwallowedException·TooGenericExceptionCaught/Thrown·PrintStackTrace)·`empty-blocks/EmptyCatchBlock`·`coroutines/*`(GlobalCoroutineUsage·InjectDispatcher·SleepInsteadOfDelay·SuspendFunSwallowedCancellation)·`potential-bugs/UnsafeCallOnNullableType`(`!!`)·`LateinitUsage`;开 inactive 规则;Kotlin explicit-API 编译 flag |
|
|
144
|
+
| iOS/Swift | SwiftLint `force_try`·`force_cast`(默认) + 启用 opt-in `force_unwrapping`·`no_empty_block`·`untyped_error_in_catch`·`weak_delegate`·`private_outlet`·`implicitly_unwrapped_optional` |
|
|
145
|
+
|
|
146
|
+
权威源:react.dev / typescriptlang.org / typescript-eslint.io / dependency-cruiser;dart.dev linter-rules+effective-dart;developer.android.com architecture + detekt.dev;swift.org API guidelines + realm.github.io/SwiftLint。
|
|
147
|
+
|
|
148
|
+
**B. 本轮 ship 的 runnable 检查器**(生态无标准规则 + 高价值 + 低依赖低误报,对标 LB-1/LB-2):
|
|
149
|
+
|
|
150
|
+
**CB-1 — terminal `no-hardcoded-ANSI`**(check_type:`deterministic`,语言无关,Python stdlib 零依赖)
|
|
151
|
+
|
|
152
|
+
- owner:`terminal-cli-dev`;权威源 clig.dev Output(capability-aware lib + `TERM=dumb`);severity:warning → blocker(消费仓采纳后定)。
|
|
153
|
+
- 脚本:`python3 skills/testing-strategy/scripts/client-terminal-ansi-check.py <src-path...> [--allow=<substr>]...`。配套 test harness `client-terminal-ansi-check.test.sh`(green)。
|
|
154
|
+
- 抓的形态:源码字面 ESC 编码(`\x1b` / `\x1B` / `\033` / `\e` / `` / `\u{1b}` / 裸 ESC 0x1b)后跟 **CSI `[` 或 OSC `]`** 引导符——OSC 覆盖 hyperlink/OSC-52 clipboard(terminal §6 视其为安全边界)。仅扫源码扩展名(不误伤 golden/fixture)。`--allow=` 豁免渲染/ANSI 模块路径。
|
|
155
|
+
- 诚实边界:抓"硬编 CSI/OSC 转义字面存在",**不**判语义(是否走 capability lib / NO_COLOR / isatty 守卫=agent-review);只覆盖 CSI/OSC 引导符(charset `\x1b(`、DCS `\x1bP`、经变量传递的 ESC 不抓);**不跟随 symlink 目录**(os.walk 默认)。干净跑 = 已遍历非 symlink 源树未发现硬编转义,≠完全合规。
|
|
156
|
+
- 退出码:`1`=命中;`2`=scope 无效/不可读(inconclusive,绝不报 clean);`0`=未发现。
|
|
157
|
+
- result-schema:`{"rule_id":"terminal.ansi.hardcoded_escape","severity":"warning","check_type":"deterministic","status":"pass|fail|inconclusive","evidence":["file:line"],"owner":"terminal-cli-dev"}`。
|
|
158
|
+
|
|
159
|
+
> **miniapp `react-dom`/`TARO_ENV` conformance is executed by ESLint config, NOT a repository script** (see C). A regex/source-text Python checker for these was prototyped and **rejected**: across adversarial-challenge rounds it spawned the SAME class of new defect each round (`/*` inside a string literal flipping comment state, whitespace around `process.env . TARO_ENV`, multiline forms…) — i.e. it was re-implementing a JS lexer in regex, the half-baked-parser anti-pattern (005 §4.1.2). JS/TS already has an AST linter; the correct executor is ESLint, which gets string/comment/whitespace state right for free. (CB-1 stays a script because terminal/CLI has NO ecosystem ANSI-aware linter and a byte-scan needs no JS parser.)
|
|
160
|
+
|
|
161
|
+
**C. executor config 模板(生态 linter = 默认执行器,非仓库自写脚本)**
|
|
162
|
+
|
|
163
|
+
miniapp `react-dom` ban + DOM/BOM ban + `TARO_ENV`-confinement — repo-authored ESLint config (runs on the real AST, so string/comment/whitespace edge-cases are handled correctly; owner `miniapp-product-dev`, sources developers.weixin.qq.com js-support + docs.taro.zone envs):
|
|
164
|
+
|
|
165
|
+
```jsonc
|
|
166
|
+
// .eslintrc — mini-program build target (exempt H5 via an overrides block on *.h5.* / h5/**)
|
|
167
|
+
"rules": {
|
|
168
|
+
// CB-2a: no react-dom (logic layer has no DOM); also bans react-dom/* and type-only imports
|
|
169
|
+
"no-restricted-imports": ["error", { "patterns": ["react-dom", "react-dom/*"] }],
|
|
170
|
+
// no DOM/BOM globals in mini-program runtime
|
|
171
|
+
"no-restricted-globals": ["error", "window", "document", "navigator", "localStorage"],
|
|
172
|
+
// CB-2b: TARO_ENV branching only in the adapter/platform layer — confine via an overrides block
|
|
173
|
+
// that ENABLES this rule for src/**, then DISABLES it for src/adapters/** and *.{weapp,alipay,tt,...}.*
|
|
174
|
+
"no-restricted-syntax": ["error", {
|
|
175
|
+
"selector": "MemberExpression[property.name='TARO_ENV'][object.property.name='env'][object.object.name='process']",
|
|
176
|
+
"message": "process.env.TARO_ENV branching belongs in the adapter/platform layer, not scattered"
|
|
177
|
+
}]
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Layering/dependency-direction (**全栈 custom 旗舰,无 out-of-box 规则**) likewise落各栈 import-ban config——JS/TS dep-cruiser `forbidden`、Kotlin Konsist/ArchUnit 或 custom detekt、Dart custom_lint、Swift custom;点禁用 `no-restricted-imports`。这些都是**消费仓 config**,由对应 client `*-dev` owner 提供/维护,不在 ccl-skills 落 runnable 脚本。
|
|
182
|
+
|
|
183
|
+
**D. backlog(named owner + 触发条件,不半 ship)**:每栈 dispose 生命周期 / 取消协作(Swift Task `isCancelled`、RN useEffect abort)/ 语义吞异常 / JS-TS finite-value 集中 / 分层自定义规则——需 AST/类型分析或各栈 toolchain,触发=该栈消费仓启用 dep-conformance CI 时拾取。
|
|
184
|
+
|
|
185
|
+
### 4.2 起步 sequencing
|
|
186
|
+
新项目从最便宜的开始上:
|
|
187
|
+
1. **Linter rules**(语法 / 命名 / 简单依赖)— 零启动成本,本地 IDE 即时反馈
|
|
188
|
+
2. **Static dep graph 检查**(无循环 / 分层)— 几分钟接入 dep-cruiser / go-arch-lint
|
|
189
|
+
3. **Pre-existing tools 的 invariant 模式**(gitleaks / breaking-change linter)— 1 小时接入
|
|
190
|
+
4. **Performance budget**(最贵 — 需要稳定 load test 环境)— 项目稳定后再上
|
|
191
|
+
|
|
192
|
+
### 4.3 与 ADR 配合
|
|
193
|
+
每个 ADR 的 Consequences 段如果声明了"承诺保持 X",对应应有 fitness function 验。
|
|
194
|
+
|
|
195
|
+
例:ADR-0007 "DAL is only DB access point" → fitness function `no_db_import_outside_repository_pkg`。
|
|
196
|
+
|
|
197
|
+
没 fitness function = consequences 仅口头承诺,迟早违反。
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## §5 与现有 skill 的映射
|
|
202
|
+
|
|
203
|
+
| Fitness function 类型 | 集成进哪 |
|
|
204
|
+
|---|---|
|
|
205
|
+
| Linter / static dep | 各 stack-dev skill(`go-microservice-dev` / `python-service-dev` / `web-react-dev` / `app-cross-platform-dev` / `miniapp-product-dev`)的 CI gate |
|
|
206
|
+
| Performance budget | 见 `testing-strategy/references/test-code-authoring-patterns.md` §3 (slow test heuristic) + `platform-observability` 运行时验证 |
|
|
207
|
+
| Breaking change detection | `test-artifact-management/references/source-to-case-workflows.md` §D (schemathesis / Pact / Dredd) — 契约层 fitness function |
|
|
208
|
+
| Security invariants | code review + `code-review` skill(CI 集成)|
|
|
209
|
+
| R&D standards conformance | `product-rd-workflow` owns the standards family and conformance map; this reference owns the executable invariant model; stack skills own concrete commands |
|
|
210
|
+
| Repo-local agent contracts | `agents-file-coverage-gate` for AGENTS.md coverage; `product-rd-workflow` decides when contract changes are required |
|
|
211
|
+
|
|
212
|
+
- Security-invariant reviews must route through `code-review`; the selected CLI keeps its local provider and model configuration.
|
|
213
|
+
|
|
214
|
+
### 5.1 健康度检查输出
|
|
215
|
+
|
|
216
|
+
Prefer a stable machine-readable result so CI, dashboards, and agents can reuse it:
|
|
217
|
+
|
|
218
|
+
```json
|
|
219
|
+
{
|
|
220
|
+
"rule_id": "go.contract.idl_first",
|
|
221
|
+
"severity": "blocker",
|
|
222
|
+
"check_type": "deterministic",
|
|
223
|
+
"status": "pass",
|
|
224
|
+
"evidence": ["idl repo found", "generated package imported by service"],
|
|
225
|
+
"owner": "service owner",
|
|
226
|
+
"ci_gate": true
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
For `agent_review` checks, include the prompt or review packet path and quote only the concrete finding summary, not the whole source. If the review cannot make a concrete judgment from the evidence packet, emit `inconclusive` with the missing evidence; never convert it to `pass`. A health score is optional; blockers, failed gates, and evidence quality matter more than a single number.
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## §6 故意不借鉴
|
|
235
|
+
|
|
236
|
+
| 概念 | 原因 |
|
|
237
|
+
|---|---|
|
|
238
|
+
| Ford 等 *Building Evolutionary Architectures* 整书的 evolutionary architecture 哲学 | 完整哲学体系太重;本 ref 只取 fitness function 这个 actionable 部分 |
|
|
239
|
+
| Mutation testing 作架构 fitness function | mutation 测的是 test suite quality,已在 `test-artifact-management/references/source-to-case-workflows.md` §C.1;不重复 |
|
|
240
|
+
| Chaos engineering 全套(Netflix Chaos Monkey 等)| 是 reliability fitness function 的具体方法,归 `platform-release-engineering` 实现层 |
|