@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,573 @@
|
|
|
1
|
+
# Feishu Bitable Setup Reference
|
|
2
|
+
|
|
3
|
+
This reference covers `lark-base`/lark-cli operations and auth scopes for initializing the testcase table and delivering testcase records. `test-artifact-management` owns this resource end to end; it does not create unrelated Wiki nodes or project tables.
|
|
4
|
+
|
|
5
|
+
## Required Auth Scopes
|
|
6
|
+
|
|
7
|
+
Authorize these before starting Bitable operations:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
base:app:create
|
|
11
|
+
base:table:read
|
|
12
|
+
base:table:create
|
|
13
|
+
base:field:read
|
|
14
|
+
base:field:create
|
|
15
|
+
base:field:update
|
|
16
|
+
base:view:write_only
|
|
17
|
+
base:record:create
|
|
18
|
+
base:record:read
|
|
19
|
+
base:record:update
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Authorize via device flow login. Prefer one-shot full-scope login:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
lark-cli auth login --domain base --scope "base:app:create base:table:read base:table:create base:field:read base:field:create base:field:update base:view:write_only base:record:create base:record:read base:record:update"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
For the report doc (Feishu Docs domain):
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
lark-cli auth login --domain docs --scope "docx:document:create docx:document:update"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Before any Base write, verify the current token against the server, then check the scopes needed by the operation:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
lark-cli auth status --json --verify
|
|
38
|
+
lark-cli auth check --scope "base:app:create base:table:read base:table:create base:field:read base:field:create base:field:update base:view:write_only base:record:create base:record:read base:record:update"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
If token verification fails or the server cannot be reached, stop before mutation and follow `lark-shared` authentication recovery. If a command reports a scope error, re-login adding the missing scope. The single full-scope login above covers every Bitable operation in this guide.
|
|
42
|
+
|
|
43
|
+
Interactive setup uses the user identity. If CI will later sync results with the bot credentials from `references/ci_templates/`, grant that app access to the target Base before enabling the job. For a Base mounted under Wiki, apply the resource-level app grant to both the Base and its Wiki parent; granting only the embedded Base view can leave bot writes failing with `91403`. Verify the bot can resolve the Base and read its records before treating CI setup as complete. On `91403`, stop identity swapping and follow `lark-shared` permission recovery for the actual resource.
|
|
44
|
+
|
|
45
|
+
## Step 1: Reuse or create the testcase Base
|
|
46
|
+
|
|
47
|
+
1. If the user provides a Base URL, resolve its base token and table ID and inspect it with `lark-base`.
|
|
48
|
+
2. If `.feishu/project.yaml` exists and contains valid `测试用例集` identifiers, reuse them as an optional compatibility input.
|
|
49
|
+
3. Before creating anything, run `lark-cli base +title-resolve --title "测试用例" --as user` and inspect exact-title candidates. Reuse only after confirming the candidate with the user; if several Bases match, present their URLs/locations and do not choose by title alone.
|
|
50
|
+
4. If no confirmed candidate exists, use `lark-base` to create one Base named `测试用例`; create it under a specific folder only when the user requests that placement.
|
|
51
|
+
5. Never create a project Wiki tree or unrelated requirement, batch, report, bug, or release-document tables as a side effect.
|
|
52
|
+
|
|
53
|
+
Do not create a second testcase Base merely because fields are missing. Add only missing canonical fields, merge missing select options, and preserve unknown fields, options, views, and records. A conflicting field type requires an explicit schema decision; never delete or auto-convert it.
|
|
54
|
+
|
|
55
|
+
CLI equivalent for Base creation. Supplying the initial table and primary field avoids the platform default example schema; the later steps add only the remaining canonical fields:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
lark-cli base +base-create --name "测试用例" \
|
|
59
|
+
--table-name "测试用例" \
|
|
60
|
+
--fields '[{"name":"用例ID","type":"text"}]' \
|
|
61
|
+
--folder-token "<folder_token>"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
- Run the same command with `--dry-run` first and inspect the returned API plan and target folder; remove `--dry-run` only after they match the request. Use `lark-base` rather than substituting a raw Base-creation endpoint.
|
|
65
|
+
- `folder_token`: from the Feishu folder URL. For root "我的空间" use `""` or omit.
|
|
66
|
+
- Returns: `base_token` (used for all subsequent operations as `--base-token`)
|
|
67
|
+
- If creation returns a Base token but a later table/schema step fails, inspect that Base with `+base-get` and `+table-list`, then resume or reuse it; do not retry by creating another Base. `lark-base` does not delete an entire Base. If the user explicitly wants the partial Base removed, hand the confirmed resource to `lark-drive` or the Feishu UI and keep deletion behind explicit user confirmation.
|
|
68
|
+
|
|
69
|
+
## Step 2: Resolve the testcase table
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
lark-cli base +table-list --base-token "<base_token>"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Select the table whose exact name is `测试用例` and use its ID. Do not assume
|
|
76
|
+
the first/default table is correct: if platform-default cleanup failed, both a
|
|
77
|
+
sample table and the intended table may exist. If no exact match exists, or
|
|
78
|
+
more than one table has that name, stop for an explicit resolution decision;
|
|
79
|
+
do not create another table or add fields to an arbitrary result.
|
|
80
|
+
|
|
81
|
+
Report any other tables and leave them untouched. Delete a non-canonical table
|
|
82
|
+
only after inspecting its records, identifying the exact table, and obtaining
|
|
83
|
+
the user's explicit deletion approval.
|
|
84
|
+
|
|
85
|
+
For a legacy `测试用例集` Base containing separate `功能` / `接口` / `单测`
|
|
86
|
+
tables and no exact `测试用例` table, present three choices and wait for the
|
|
87
|
+
user's migration decision: keep the legacy tables accessible but unmanaged by
|
|
88
|
+
this workflow; designate and explicitly rename one table after a schema review;
|
|
89
|
+
or create a new canonical table and migrate records through `lark-base` under
|
|
90
|
+
an approved field mapping. Never merge, delete, or choose among legacy tables
|
|
91
|
+
automatically.
|
|
92
|
+
|
|
93
|
+
## Step 3: Ensure required fields
|
|
94
|
+
|
|
95
|
+
List existing fields first. Add the missing fields below one by one. If a field exists with a conflicting type, stop and ask for a schema decision; do not auto-convert or delete it. For select fields, preserve existing options and append only missing canonical options.
|
|
96
|
+
|
|
97
|
+
Updating an existing field is a high-risk full-state `PUT`, not a patch. Before
|
|
98
|
+
appending select options or changing any other property:
|
|
99
|
+
|
|
100
|
+
1. Read the exact field with `+field-get` and use its full writable definition
|
|
101
|
+
as the baseline.
|
|
102
|
+
2. Merge only the requested change into that definition. For a select field,
|
|
103
|
+
retain every existing option object and other returned configuration, then
|
|
104
|
+
append only the missing canonical options. Never submit a canonical-only
|
|
105
|
+
option list.
|
|
106
|
+
3. Preview the merged target with `+field-update --dry-run`; verify the Base,
|
|
107
|
+
table, field, type, and retained options/configuration. Then submit the same
|
|
108
|
+
full target with `+field-update ... --yes`. Follow the current `lark-base`
|
|
109
|
+
field-update guide for writable JSON shape; do not send read-only response
|
|
110
|
+
metadata back to the API.
|
|
111
|
+
|
|
112
|
+
`lark-base` exposes no ETag/CAS guard for field updates, so this procedure can
|
|
113
|
+
reduce but not eliminate the race window. Coordinate one schema-mutation
|
|
114
|
+
session; if exclusive editing cannot be established with other operators, stop
|
|
115
|
+
instead of writing. Immediately before the PUT, read the field again and
|
|
116
|
+
compare it with the merge baseline; if it changed, stop and rebuild the merge.
|
|
117
|
+
Read it again after the PUT and verify the intended change plus all retained
|
|
118
|
+
configuration. Report the residual read-to-write race as a known limitation.
|
|
119
|
+
|
|
120
|
+
### Add 模块 (single select)
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
lark-cli base +field-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
124
|
+
--json '{"name":"模块","type":"select","options":[
|
|
125
|
+
{"name":"<module_1>","color":0},
|
|
126
|
+
{"name":"<module_2>","color":1},
|
|
127
|
+
{"name":"<module_3>","color":2}
|
|
128
|
+
]}'
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Determine module names from the actual requirements source. Color index 0–14 cycles through Feishu's preset colors.
|
|
132
|
+
|
|
133
|
+
### Add 功能点
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
lark-cli base +field-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
137
|
+
--json '{"name":"功能点","type":"text"}'
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Add 优先级 (single select)
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
lark-cli base +field-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
144
|
+
--json '{"name":"优先级","type":"select","options":[
|
|
145
|
+
{"name":"P0","color":1},
|
|
146
|
+
{"name":"P1","color":3},
|
|
147
|
+
{"name":"P2","color":0}
|
|
148
|
+
]}'
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Add 测试层级 (single select)
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
lark-cli base +field-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
155
|
+
--json '{"name":"测试层级","type":"select","options":[
|
|
156
|
+
{"name":"unit","color":0},
|
|
157
|
+
{"name":"contract","color":5},
|
|
158
|
+
{"name":"integration","color":3},
|
|
159
|
+
{"name":"e2e","color":1},
|
|
160
|
+
{"name":"manual","color":7}
|
|
161
|
+
]}'
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
This field records **where the primary proof lives**. Keep it aligned with the TC author's chosen main proof layer; matrix columns remain the detailed multi-layer planning artifact.
|
|
165
|
+
|
|
166
|
+
### Add 测试类型 (single select)
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
lark-cli base +field-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
170
|
+
--json '{"name":"测试类型","type":"select","options":[
|
|
171
|
+
{"name":"ui-automation","color":1},
|
|
172
|
+
{"name":"api-automation","color":3},
|
|
173
|
+
{"name":"device-automation","color":4},
|
|
174
|
+
{"name":"contract-validation","color":5},
|
|
175
|
+
{"name":"llm-eval","color":6},
|
|
176
|
+
{"name":"manual-verification","color":7}
|
|
177
|
+
]}'
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
This field records **how the scenario is exercised**. Keep it orthogonal to `测试层级`: for example `e2e + ui-automation`, `contract + contract-validation`, or `manual + manual-verification`.
|
|
181
|
+
|
|
182
|
+
### Add 前置条件
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
lark-cli base +field-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
186
|
+
--json '{"name":"前置条件","type":"text"}'
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Add 操作步骤
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
lark-cli base +field-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
193
|
+
--json '{"name":"操作步骤","type":"text"}'
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Add 预期结果
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
lark-cli base +field-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
200
|
+
--json '{"name":"预期结果","type":"text"}'
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Add 状态 (single select)
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
lark-cli base +field-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
207
|
+
--json '{"name":"状态","type":"select","options":[
|
|
208
|
+
{"name":"未测试","color":0},
|
|
209
|
+
{"name":"通过","color":3},
|
|
210
|
+
{"name":"失败","color":1},
|
|
211
|
+
{"name":"阻塞","color":4},
|
|
212
|
+
{"name":"跳过","color":6},
|
|
213
|
+
{"name":"废弃","color":2}
|
|
214
|
+
]}'
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
`废弃` 表示功能已永久下线,用例不再有效。废弃记录保留在 Bitable 中(不删除),不计入统计总数和通过率。与`跳过`区别:`跳过`是临时排除,可恢复;`废弃`是永久终态。
|
|
218
|
+
|
|
219
|
+
**`跳过` 与 `阻塞` 语义边界**(gen_report.py 自动映射 JUnit `<skipped>` 元素):
|
|
220
|
+
|
|
221
|
+
| Bitable 状态 | 含义 | 何时产出 |
|
|
222
|
+
|---|---|---|
|
|
223
|
+
| `阻塞` | 依赖未就绪、等环境 | pytest `@skip(reason="requires linux")` / `@skipif(not driver)` / `@skip("needs docker")` 等环境性 skip — reason 含 `environment / platform / windows / linux / darwin / requires / needs / no driver / no device / service unavailable / credential / fixture not ready` 等关键词 |
|
|
224
|
+
| `跳过` | 人工临时排除,可恢复 | 其他所有 JUnit `<skipped>`(写 reason 描述业务决定,例如 `manually disabled for this iteration` / `excluded pending product confirmation`) |
|
|
225
|
+
| `废弃` | 功能永久下线 | **不会**由 JUnit 自动产出;只能手动在 Bitable 设置,automation 不得修改(`gen_report.py --unfreeze` 是唯一恢复路径) |
|
|
226
|
+
|
|
227
|
+
含义不同直接影响发布建议:`阻塞` 进 P0/P1 release-blocking 集,`跳过` 不进。所以 reason 字段写清楚,不要混。
|
|
228
|
+
|
|
229
|
+
### Add 跟进人 (user field)
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
lark-cli base +field-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
233
|
+
--json '{"name":"跟进人","type":"user"}'
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Add 信息流转
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
lark-cli base +field-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
240
|
+
--json '{"name":"信息流转","type":"text"}'
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## Step 4: Ensure the primary field is 用例ID
|
|
244
|
+
|
|
245
|
+
A Base created by Step 1 already has this field; do not rename it again. For a
|
|
246
|
+
reused Base, first confirm that `用例ID` is the primary field. If `用例ID`
|
|
247
|
+
already exists as a non-primary field while the primary field has another name,
|
|
248
|
+
stop for an explicit migration decision; do not delete either field or attempt
|
|
249
|
+
an ordered delete-and-rename automatically. If `用例ID` is missing, list fields
|
|
250
|
+
and confirm that the existing primary text field is the intended testcase
|
|
251
|
+
identifier. Only then rename it; if the primary field contains another business
|
|
252
|
+
key or has a conflicting type, stop for an explicit schema decision.
|
|
253
|
+
|
|
254
|
+
First, list fields to get the default field's ID:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
lark-cli base +field-list --base-token "<base_token>" --table-id "<table_id>"
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Then rename it. Read the field again with `+field-get`, preserve its complete
|
|
261
|
+
writable definition, and change only `name`; preview that target before the
|
|
262
|
+
confirmed high-risk write:
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
lark-cli base +field-get --base-token "<base_token>" --table-id "<table_id>" \
|
|
266
|
+
--field-id "<first_field_id>"
|
|
267
|
+
lark-cli base +field-update --base-token "<base_token>" --table-id "<table_id>" \
|
|
268
|
+
--field-id "<first_field_id>" \
|
|
269
|
+
--json '<complete_writable_field_definition_with_name_set_to_用例ID>' --dry-run
|
|
270
|
+
lark-cli base +field-update --base-token "<base_token>" --table-id "<table_id>" \
|
|
271
|
+
--field-id "<first_field_id>" \
|
|
272
|
+
--json '<same_verified_complete_writable_field_definition>' --yes
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## Step 5: Batch Create Records
|
|
276
|
+
|
|
277
|
+
### Avoid TC ID collisions before batch-create
|
|
278
|
+
|
|
279
|
+
When multiple people work on the same Bitable in parallel, both may pick the
|
|
280
|
+
same next sequence number (e.g. two devs both choose `TC-SY-008`). Always check
|
|
281
|
+
the current max per module first:
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
python test/scripts/gen_report.py \
|
|
285
|
+
--config test/.report-config.json --next-id
|
|
286
|
+
# Prints: TC-SY-006 (current max: TC-SY-005)
|
|
287
|
+
# TC-AU-011 (current max: TC-AU-010)
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
Use the printed next-ID as the starting point. For atomic reservation in a
|
|
291
|
+
shared workspace, batch-create with the planned IDs immediately and rely on
|
|
292
|
+
Bitable's eventual `build_index` duplicate-check (raises on collision) as the
|
|
293
|
+
backstop. If a collision is detected, re-run `--next-id` and pick fresh IDs.
|
|
294
|
+
|
|
295
|
+
### Batch insert
|
|
296
|
+
|
|
297
|
+
Use `+record-batch-create` for large sets. The `--json` payload uses a tabular format:
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
lark-cli base +record-batch-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
301
|
+
--json '{"fields":["用例ID","模块","功能点","优先级","测试层级","测试类型","状态","信息流转"],
|
|
302
|
+
"rows":[
|
|
303
|
+
["TC-MOD-001","模块名","功能描述","P0","e2e","ui-automation","未测试","[创建人 2026-05-25] 用例初始化"],
|
|
304
|
+
["TC-MOD-002","模块名","功能描述2","P1","contract","api-automation","未测试","[创建人 2026-05-25] 用例初始化"]
|
|
305
|
+
]}'
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
For complex or multi-line fields, use `+record-upsert` per record instead:
|
|
309
|
+
|
|
310
|
+
```python
|
|
311
|
+
import subprocess, json
|
|
312
|
+
|
|
313
|
+
records = [
|
|
314
|
+
{
|
|
315
|
+
"用例ID": "TC-MOD-001",
|
|
316
|
+
"模块": "模块名",
|
|
317
|
+
"功能点": "功能描述",
|
|
318
|
+
"优先级": "P0",
|
|
319
|
+
"测试层级": "e2e",
|
|
320
|
+
"测试类型": "ui-automation",
|
|
321
|
+
"前置条件": "前置状态",
|
|
322
|
+
"操作步骤": "1. 步骤一\n2. 步骤二",
|
|
323
|
+
"预期结果": "预期结果描述",
|
|
324
|
+
"状态": "未测试",
|
|
325
|
+
"信息流转": "[创建人 2026-05-25] 用例初始化"
|
|
326
|
+
},
|
|
327
|
+
# ... more records
|
|
328
|
+
]
|
|
329
|
+
|
|
330
|
+
for r in records:
|
|
331
|
+
result = subprocess.run(
|
|
332
|
+
["lark-cli", "base", "+record-upsert",
|
|
333
|
+
"--base-token", BASE_TOKEN,
|
|
334
|
+
"--table-id", TABLE_ID,
|
|
335
|
+
"--json", json.dumps(r)],
|
|
336
|
+
capture_output=True, text=True
|
|
337
|
+
)
|
|
338
|
+
if result.returncode != 0:
|
|
339
|
+
print(f"ERROR: {result.stderr}")
|
|
340
|
+
else:
|
|
341
|
+
print(result.stdout)
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
For select fields: pass the option name as a plain string.
|
|
345
|
+
For user fields: pass `{"id": "<open_id>"}` or leave empty for unassigned.
|
|
346
|
+
|
|
347
|
+
Recommended defaulting rule when authors are creating rows in bulk:
|
|
348
|
+
- Visible browser/admin journey → `测试层级=e2e`, `测试类型=ui-automation`
|
|
349
|
+
- Service/API behavior → `测试层级=contract` or `integration`, `测试类型=api-automation`
|
|
350
|
+
- Published schema / proto compatibility → `测试层级=contract`, `测试类型=contract-validation`
|
|
351
|
+
- Device or host-runtime proof → `测试层级=e2e`, `测试类型=device-automation`
|
|
352
|
+
- Human-only acceptance → `测试层级=manual`, `测试类型=manual-verification`
|
|
353
|
+
|
|
354
|
+
## Step 6: Rename default view + create Grouped View
|
|
355
|
+
|
|
356
|
+
A freshly-created Bitable's default view is named "Grid View" (English) — rename it
|
|
357
|
+
to Chinese first so the UI is consistent:
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# Rename "Grid View" → "全部用例" (the default catch-all view)
|
|
361
|
+
lark-cli base +view-rename --base-token "<base_token>" --table-id "<table_id>" \
|
|
362
|
+
--view-id "Grid View" --name "全部用例"
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
Then create the grouped view used as a mind-map substitute:
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
lark-cli base +view-create --base-token "<base_token>" --table-id "<table_id>" \
|
|
369
|
+
--json '{"name":"按模块分组","type":"grid"}'
|
|
370
|
+
|
|
371
|
+
# Configure grouping by 模块 field
|
|
372
|
+
lark-cli base +view-set-group --base-token "<base_token>" --table-id "<table_id>" \
|
|
373
|
+
--view-id "按模块分组" --json '{"field_name":"模块","desc":false}'
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
Recommended baseline views:
|
|
377
|
+
- `全部用例` (default; flat list, no grouping)
|
|
378
|
+
- `按模块分组` (grouped by 模块)
|
|
379
|
+
- `P0 关注` (filtered by 优先级 = P0; add via `+view-create` + `+view-set-filter` if needed)
|
|
380
|
+
|
|
381
|
+
## Step 7: Set Sharing Permissions
|
|
382
|
+
|
|
383
|
+
No lark-cli command is available for org-wide sharing. Do this manually:
|
|
384
|
+
|
|
385
|
+
1. Open the Bitable URL in Feishu
|
|
386
|
+
2. Click "分享" → "组织内可编辑" (or appropriate permission level)
|
|
387
|
+
|
|
388
|
+
## Step 8: List and Search Existing Records
|
|
389
|
+
|
|
390
|
+
需要 scope: `base:record:read`
|
|
391
|
+
|
|
392
|
+
```bash
|
|
393
|
+
lark-cli auth login --domain base --scope "base:record:read base:record:update"
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### List all records (paginated)
|
|
397
|
+
|
|
398
|
+
```bash
|
|
399
|
+
lark-cli base +record-list --base-token "<base_token>" --table-id "<table_id>" \
|
|
400
|
+
--limit 200 --format json
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
`+record-list` uses `--limit` (max 200) and `--offset` for pagination. Default output is markdown; pass `--format json` for machine-readable output.
|
|
404
|
+
|
|
405
|
+
### Python: 按 用例ID 建查找索引
|
|
406
|
+
|
|
407
|
+
```python
|
|
408
|
+
import subprocess, json
|
|
409
|
+
|
|
410
|
+
def get_record_index(base_token, table_id):
|
|
411
|
+
"""Returns dict: {用例ID → record_id}. Raises on CLI failure or duplicate 用例ID."""
|
|
412
|
+
index = {}
|
|
413
|
+
offset = 0
|
|
414
|
+
limit = 200
|
|
415
|
+
while True:
|
|
416
|
+
result = subprocess.run(
|
|
417
|
+
["lark-cli", "base", "+record-list",
|
|
418
|
+
"--base-token", base_token,
|
|
419
|
+
"--table-id", table_id,
|
|
420
|
+
"--limit", str(limit),
|
|
421
|
+
"--offset", str(offset),
|
|
422
|
+
"--format", "json"],
|
|
423
|
+
capture_output=True, text=True
|
|
424
|
+
)
|
|
425
|
+
if result.returncode != 0:
|
|
426
|
+
raise RuntimeError(f"+record-list failed: {result.stderr}")
|
|
427
|
+
data = json.loads(result.stdout)
|
|
428
|
+
items = data.get("data", {}).get("items", [])
|
|
429
|
+
for record in items:
|
|
430
|
+
case_id = record["fields"].get("用例ID", "")
|
|
431
|
+
if case_id:
|
|
432
|
+
if case_id in index:
|
|
433
|
+
raise ValueError(f"Duplicate 用例ID '{case_id}' found; fix Bitable before updating")
|
|
434
|
+
index[case_id] = record["record_id"]
|
|
435
|
+
if len(items) < limit:
|
|
436
|
+
break
|
|
437
|
+
offset += limit
|
|
438
|
+
return index
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
## Step 9: Update Records
|
|
442
|
+
|
|
443
|
+
### Update a single record
|
|
444
|
+
|
|
445
|
+
```bash
|
|
446
|
+
lark-cli base +record-upsert --base-token "<base_token>" --table-id "<table_id>" \
|
|
447
|
+
--record-id "<record_id>" \
|
|
448
|
+
--json '{"状态": "通过"}'
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
`--json` payload is the fields dict directly (not wrapped in `{"fields": ...}`).
|
|
452
|
+
`record_id` is the internal ID from `+record-list`; never use 用例ID directly as record_id.
|
|
453
|
+
|
|
454
|
+
### Append to 信息流转 (read-then-write, never overwrite)
|
|
455
|
+
|
|
456
|
+
`+record-get` returns fields as a positional array, not by name. Use `+record-list` with full pagination to read a known record's named fields:
|
|
457
|
+
|
|
458
|
+
```python
|
|
459
|
+
def get_record_fields(base_token, table_id, record_id):
|
|
460
|
+
"""Read fields of a specific record by record_id (paginates fully). Raises if not found or CLI fails."""
|
|
461
|
+
offset = 0
|
|
462
|
+
limit = 200
|
|
463
|
+
while True:
|
|
464
|
+
result = subprocess.run(
|
|
465
|
+
["lark-cli", "base", "+record-list",
|
|
466
|
+
"--base-token", base_token,
|
|
467
|
+
"--table-id", table_id,
|
|
468
|
+
"--limit", str(limit),
|
|
469
|
+
"--offset", str(offset),
|
|
470
|
+
"--format", "json"],
|
|
471
|
+
capture_output=True, text=True
|
|
472
|
+
)
|
|
473
|
+
if result.returncode != 0:
|
|
474
|
+
raise RuntimeError(f"+record-list failed: {result.stderr}")
|
|
475
|
+
data = json.loads(result.stdout)
|
|
476
|
+
items = data.get("data", {}).get("items", [])
|
|
477
|
+
for rec in items:
|
|
478
|
+
if rec["record_id"] == record_id:
|
|
479
|
+
return rec["fields"]
|
|
480
|
+
if len(items) < limit:
|
|
481
|
+
break
|
|
482
|
+
offset += limit
|
|
483
|
+
raise LookupError(f"record_id '{record_id}' not found in table")
|
|
484
|
+
|
|
485
|
+
def append_info_log(base_token, table_id, record_id, entry):
|
|
486
|
+
"""entry: '[姓名 2026-05-25] 内容'. Raises if read fails (never overwrites on error)."""
|
|
487
|
+
# 1. read current value — raises on failure to prevent silent overwrite
|
|
488
|
+
fields = get_record_fields(base_token, table_id, record_id)
|
|
489
|
+
current = fields.get("信息流转", "")
|
|
490
|
+
new_value = (current + "\n" + entry).strip()
|
|
491
|
+
|
|
492
|
+
# 2. write back
|
|
493
|
+
result = subprocess.run(
|
|
494
|
+
["lark-cli", "base", "+record-upsert",
|
|
495
|
+
"--base-token", base_token,
|
|
496
|
+
"--table-id", table_id,
|
|
497
|
+
"--record-id", record_id,
|
|
498
|
+
"--json", json.dumps({"信息流转": new_value})],
|
|
499
|
+
capture_output=True, text=True
|
|
500
|
+
)
|
|
501
|
+
if result.returncode != 0:
|
|
502
|
+
raise RuntimeError(f"信息流转 write failed for {record_id}: {result.stderr}")
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
### Python: batch update records by 用例ID
|
|
506
|
+
|
|
507
|
+
```python
|
|
508
|
+
updates = [
|
|
509
|
+
{"用例ID": "TC-SY-001", "状态": "通过", "信息流转追加": "[张三 2026-05-28] 测试通过"},
|
|
510
|
+
{"用例ID": "TC-SY-003", "状态": "失败", "信息流转追加": "[张三 2026-05-28] 步骤2预期结果不符"},
|
|
511
|
+
{"用例ID": "TC-SY-007", "状态": "跳过", "信息流转追加": "[李四 2026-05-28] 功能已废弃"},
|
|
512
|
+
]
|
|
513
|
+
|
|
514
|
+
index = get_record_index(BASE_TOKEN, TABLE_ID)
|
|
515
|
+
|
|
516
|
+
for u in updates:
|
|
517
|
+
case_id = u["用例ID"]
|
|
518
|
+
record_id = index.get(case_id)
|
|
519
|
+
if not record_id:
|
|
520
|
+
print(f"WARNING: {case_id} not found in Bitable")
|
|
521
|
+
continue
|
|
522
|
+
|
|
523
|
+
fields = {k: v for k, v in u.items() if k not in ("用例ID", "信息流转追加")}
|
|
524
|
+
field_ok = True
|
|
525
|
+
if fields:
|
|
526
|
+
result = subprocess.run(
|
|
527
|
+
["lark-cli", "base", "+record-upsert",
|
|
528
|
+
"--base-token", BASE_TOKEN,
|
|
529
|
+
"--table-id", TABLE_ID,
|
|
530
|
+
"--record-id", record_id,
|
|
531
|
+
"--json", json.dumps(fields)],
|
|
532
|
+
capture_output=True, text=True
|
|
533
|
+
)
|
|
534
|
+
if result.returncode != 0:
|
|
535
|
+
print(f"ERROR updating {case_id}: {result.stderr}")
|
|
536
|
+
field_ok = False
|
|
537
|
+
|
|
538
|
+
if field_ok and "信息流转追加" in u:
|
|
539
|
+
append_info_log(BASE_TOKEN, TABLE_ID, record_id, u["信息流转追加"])
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
### Python: update test case content (requirement changed)
|
|
543
|
+
|
|
544
|
+
```python
|
|
545
|
+
content_updates = [
|
|
546
|
+
{
|
|
547
|
+
"用例ID": "TC-SY-002",
|
|
548
|
+
"操作步骤": "1. 新步骤一\n2. 新步骤二",
|
|
549
|
+
"预期结果": "新预期结果",
|
|
550
|
+
"信息流转追加": "[产品 2026-05-28] 需求变更:步骤和预期结果已更新"
|
|
551
|
+
},
|
|
552
|
+
]
|
|
553
|
+
# same loop as batch update above
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
## Common Errors
|
|
557
|
+
|
|
558
|
+
| Error | Cause | Fix |
|
|
559
|
+
|---|---|---|
|
|
560
|
+
| `field type invalid` | Used wrong type string | Use `"text"`, `"select"`, `"user"` (not `"person"`, `"dropdown"`) |
|
|
561
|
+
| `table already exists` | First `+table-create` call half-created a table | Use `+table-list` to find and reuse the existing table |
|
|
562
|
+
| `options format error` | Nested `property` key | Pass options as direct array: `{"name":"x","type":"select","options":[...]}` |
|
|
563
|
+
| `record_id not found` | Using 用例ID instead of record_id for update | Use `+record-list` to build `{用例ID → record_id}` index first |
|
|
564
|
+
| 信息流转 overwritten | Writing new value without reading current first | Always read → append → write; never write unconditionally |
|
|
565
|
+
| `base:record:update` permission denied | Scope not authorized | Run `lark-cli auth login --domain base --scope "base:record:read base:record:update"`, verify with `lark-cli auth check --scope "base:record:read base:record:update"` |
|
|
566
|
+
| `unknown command +record-update` | Command does not exist | Use `+record-upsert --record-id <id>` for updates |
|
|
567
|
+
| `unknown flag --app-token` on any command | All Base commands use a different flag | Use `--base-token` (not `--app-token`) for all `lark-cli base` commands |
|
|
568
|
+
| `unknown command +app-create` | Command renamed | Use `+base-create`; it returns `base_token`, not `app_token` |
|
|
569
|
+
| `unknown flag --page-size` / `--page-token` | `+record-list` uses different pagination flags | Use `--limit` (max 200) and `--offset`; add `--format json` for JSON output |
|
|
570
|
+
| `json.loads()` fails on record-list output | Default output is markdown, not JSON | Add `--format json` to all `+record-list` calls used in Python scripts |
|
|
571
|
+
| `unknown flag --field` on field-create | Wrong flag name | Use `--json '{"name":"...","type":"..."}'` |
|
|
572
|
+
| `unknown flag --name` / `--type` on field-update or view-create | Wrong flag names | Use `--json` with the full object; `+field-update` uses full PUT semantics |
|
|
573
|
+
| Select field read back as `["P1"]` not `"P1"` | API wraps select values in array | Write as plain string `"P1"`; when reading, guard with `value[0] if isinstance(value, list) else value` |
|