ln-500-story-quality-gate

安装量: 106
排名: #7961

安装

npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-500-story-quality-gate

Paths: File paths ( shared/ , references/ , ../ln- ) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. Story Quality Gate Thin orchestrator that coordinates quality checks and test planning, then determines final Story verdict. Inputs Input Required Source Description storyId Yes args, git branch, kanban, user Story to process Resolution: Story Resolution Chain. Status filter: To Review Purpose & Scope Invoke ln-510-quality-coordinator for code quality checks Invoke ln-520-test-planner for test planning (if needed) Calculate Quality Score and NFR validation Determine 4-level Gate verdict (PASS/CONCERNS/FAIL/WAIVED) Mark Story as Done or create fix tasks Delegates ALL work — never runs checks directly 4-Level Gate Model Level Meaning Action PASS All checks pass, no issues Story -> Done CONCERNS Minor issues, acceptable risk Story -> Done with comment noting concerns FAIL Blocking issues found Create fix tasks, return to ln-400 WAIVED Issues acknowledged by user Story -> Done with waiver reason documented Verdict calculation: FAIL if any check fails. CONCERNS if minor issues exist. PASS if all clean. Quality Score Formula: Quality Score = 100 - (20 x FAIL_count) - (10 x CONCERN_count) Score Range Status Action 90-100 Excellent PASS 70-89 Acceptable CONCERNS (proceed with notes) 50-69 Below threshold FAIL (create fix tasks) <50 Critical FAIL (urgent priority) NFR Validation NFR Checks Issue Prefix Security Auth, input validation, secrets exposure SEC- Performance N+1 queries, caching, response times PERF- Maintainability DRY, SOLID, cyclomatic complexity, error handling MNT- Additional prefixes: TEST- (coverage gaps), ARCH- (architecture), DOC- (documentation), DEP- (dependencies), COV- (AC coverage), DB- (database schema), AC- (AC validation) When to Use All implementation tasks in Story are Done User requests quality gate for Story ln-400-story-executor delegates quality check Workflow Phase 0: Tools Config MANDATORY READ: Load shared/references/tools_config_guide.md , shared/references/storage_mode_detection.md , and shared/references/input_resolution_pattern.md Extract: task_provider = Task Management → Provider ( linear | file ). Phase 1: Discovery Resolve storyId (per input_resolution_pattern.md): IF args provided → use args ELSE IF git branch matches feature/{id}- → extract id ELSE IF kanban has exactly 1 Story in [To Review] → suggest ELSE → AskUserQuestion: show Stories from kanban filtered by [To Review] Auto-discover team/config from docs/tasks/kanban_board.md Load Story + task metadata: IF task_provider = linear : get_issue(storyId) + list_issues(parentId=storyId) IF task_provider = file : Read story.md + Glob("docs/tasks/epics//stories//tasks/.md") Detect test task status (exists? Done?) Phase 2: Fast-Track Decision Stories with high readiness (validated pre-execution) can skip expensive checks. IF readiness_score available in CONTEXT: IF readiness_score == 10: fast_track = true ELSE: fast_track = false ELSE: fast_track = false # No readiness data — full gate Fast-track matrix (readiness == 10): Component Full Gate Fast-Track Why ln-514 regression tests RUN RUN Always critical, cheap Linters RUN RUN Cheap, catches formatting Criteria Validation (3 checks) RUN RUN Cheap, validates AC coverage ln-511 metrics + static analysis RUN RUN Catches complexity/DRY/dead code that per-task review misses ln-511 MCP Ref (OPT-, BP-, PERF-) RUN SKIP Expensive external calls Inline agent review RUN SKIP Expensive external calls ln-520 test planning RUN SKIP Redundant for pre-validated NFR validation All dims Security only Perf/Maintainability less critical Phase 3: Quality Checks (delegate to ln-510) Invoke ln-510-quality-coordinator via Skill tool Pass: Story ID (+ --fast-track flag if fast_track == true) Full: ln-510 runs: code quality (ln-511) -> criteria validation -> linters -> regression (ln-514) Fast-track: ln-510 runs: code metrics + static (ln-511 --skip-mcp-ref ) -> criteria -> linters -> regression (ln-514) — skips MCP Ref/agent review If ln-510 returns FAIL: Create fix/refactor tasks via ln-301 Stop — return to ln-400 Phase 4: Test Planning (delegate to ln-520) IF fast_track: SKIP Phase 4 entirely (proceed to Phase 5) Check test task status: No test task -> invoke ln-520-test-planner to create Test task exists, not Done -> report status, stop Test task Done -> proceed to Phase 5 Invoke ln-520-test-planner via Skill tool (if needed) Pass: Story ID ln-520 runs: research (ln-521) -> manual testing (ln-522) -> auto test planning (ln-523) Phase 5: Test Verification (after test task Done) Load test task: IF task_provider = linear : get_issue(testTaskId) IF task_provider = file : Read test task file from docs/tasks/epics/.../tasks/T{NNN}-.md Verify limits and priority: Priority ≥15 scenarios covered Each test passes Usefulness Criteria (no numerical targets) Tests focus on business logic (no framework/DB/library tests) Verify Story AC coverage by tests Check infra/docs updates present Phase 6: Final Verdict Calculate Quality Score (see formula above) Run NFR checks per dimensions table (fast_track: Security only; full: all dimensions) Assign issue prefixes: SEC-, PERF-, MNT-, TEST-, ARCH-, DOC- Determine Gate verdict per 4-Level Gate Model Post gate verdict comment: IF task_provider = linear : create_comment({issueId: storyId, body: verdict_summary}) IF task_provider = file : Write comment to docs/tasks/epics/.../comments/{ISO-timestamp}.md If FAIL: Record root cause analysis — classify each failure (missing_context | wrong_pattern | unclear_ac | doc_gap | test_gap). Append to docs/project/architecture_health.md under

Root Cause Log

(create section if missing). Format: | {date} | {story_id} | {issue_id} | {classification} | {action_taken} | Update Story status: IF task_provider = linear : save_issue({id: storyId, state: "Done"}) for PASS/CONCERNS/WAIVED; create fix tasks for FAIL IF task_provider = file : Edit Status: line to Done in story.md for PASS/CONCERNS/WAIVED; create fix task files for FAIL Phase 7: Branch Finalization MANDATORY READ: Load shared/references/git_worktree_fallback.md Runs only when verdict is PASS, CONCERNS, or WAIVED. Consumes verified results from ln-510/ln-514 — does NOT rerun checks. IF uncommitted changes exist → git add -A && git commit -m "{storyId}: {Story Title}" Push branch: git push -u origin {branch} Move Story + Tasks → Done (Linear or kanban) Report to chat + file: branch name, git stats (files changed, insertions, deletions), quality verdict Cleanup: git worktree remove {worktree_dir} (branch preserved on remote) On FAIL verdict: Skip Phase 7. Create fix tasks, return to ln-400. TodoWrite format (mandatory): - Invoke ln-510-quality-coordinator (in_progress) - Check test task status (pending) - Invoke ln-520-test-planner (pending, if needed) - Verify test coverage (pending) - Calculate Quality Score + NFR (pending) - Determine verdict + update Story (pending) - Branch finalization (pending) Worker Invocation (MANDATORY) Phase Worker Purpose 3 ln-510-quality-coordinator Code quality + criteria + linters + regression 4 ln-520-test-planner Research + manual testing + auto test planning Invocation: Skill(skill: "ln-510-quality-coordinator", args: "{storyId}") Skill(skill: "ln-520-test-planner", args: "{storyId}") Anti-Patterns: Running mypy, ruff, pytest directly instead of invoking ln-510 Running web searches or creating bash scripts instead of invoking ln-520 Marking steps as completed without invoking the actual skill Any direct command execution that should be delegated Critical Rules Early-exit: any failure creates a specific task and stops Single source of truth: rely on task_provider config (Linear or file-based) for tasks Task creation via ln-301 only; this skill never edits tasks directly Test verification only runs when test task is Done Language preservation in comments (EN/RU) Definition of Done ln-510 quality checks: pass OR fix tasks created Test task status checked; ln-520 invoked if needed Test coverage verified (when test task Done) Quality Score calculated; NFR validation completed Gate output format: gate : PASS | CONCERNS | FAIL | WAIVED quality_score : { 0 - 100 } nfr_validation : security : PASS | CONCERNS | FAIL performance : PASS | CONCERNS | FAIL reliability : PASS | CONCERNS | FAIL maintainability : PASS | CONCERNS | FAIL issues : [ { id : "SEC-001" , severity : high | medium | low , finding : "..." , action : "..." } ] Story set to Done (PASS/CONCERNS/WAIVED) or fix tasks created (FAIL) Branch finalized: committed, pushed to remote, worktree cleaned up (PASS/CONCERNS/WAIVED) Root cause analysis recorded in architecture_health.md for every FAIL verdict Comment with gate verdict posted Reference Files Tools config: shared/references/tools_config_guide.md Storage mode operations: shared/references/storage_mode_detection.md Orchestrator lifecycle: shared/references/orchestrator_pattern.md Quality coordinator: ../ln-510-quality-coordinator/SKILL.md Test planner: ../ln-520-test-planner/SKILL.md Risk-based testing: shared/references/risk_based_testing_guide.md MANDATORY READ: shared/references/git_worktree_fallback.md Version: 7.0.0 Last Updated: 2026-02-09

返回排行榜