Skip to content
cccskills
FreePublished on GitHub

discovery

Use this skill when running systematic quality discovery and issue detection. Runs modular probes adapted to the project's tech stack, presents findings interactively for user triage, and creates VCS issues for confirmed problems. Invoked standalone via /discovery or embedded in session-end.

The English summary is being prepared. Showing the original description.

Kanevry/session-orchestrator52 stars(GitHub 52 + cccskills 0)

Run score Not tested

See how to install

Files included (22)

  • SKILL.md26.7 KB
  • issue-templates.md5.8 KB
  • probes-arch.md9.1 KB
  • probes-audit.md4.1 KB
  • probes-code.md8.6 KB
  • probes-docs.md5.2 KB
  • probes-feature.md7.1 KB
  • probes-infra.md3.1 KB
  • probes-intro.md1.7 KB
  • probes-session.md20.4 KB
  • probes-supply-chain.md5.0 KB
  • probes-ui.md6.3 KB
  • probes-vault.md4.3 KB
  • probes/docs-staleness.mjs6.9 KB
  • probes/frontend-slop.mjs5.9 KB
  • probes/ssot-code-diff.mjs12.2 KB
  • probes/supply-chain-slopcheck.mjs13.7 KB
  • probes/vault-narrative-staleness.mjs12.9 KB
  • probes/vault-staleness.mjs12.6 KB
  • references/discovery-interactive-triage.md7.1 KB
  • references/discovery-triage-state.md2.8 KB
  • slop-patterns.md3.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Discovery Skill

Invocation

The user invokes /discovery with scope: $ARGUMENTS (if empty, default to all).

Parse $ARGUMENTS before doing anything else. Extract the following flags and tokens in any order:

  • --since <git-ref> — restrict discovery to files changed since the given git ref (e.g. HEAD~5, main, a commit hash). Sets since_ref = <git-ref>, which is passed into Phase 3 plumbing.
  • --full — explicit full-repo scan. Sets full_scan = true.
  • Any remaining tokens are treated as scope specifiers (see the scope enum in § Invocation Modes).

Conflict check: If BOTH --since and --full are present, stop immediately and report:

Error: Cannot use --since with --full. Provide one, not both.

Do NOT proceed with discovery when this conflict is present.

Argument validation: Valid scopes: all, code, infra, ui, arch, session, audit, vault, feature (comma-separated for multiple). If any scope is invalid, inform the user: "Invalid scope '[token]'. Valid scopes: all, code, infra, ui, arch, session, audit, vault, feature." and default that token to all.

Scan the codebase for quality issues, technical debt, and improvement opportunities within the requested scope. Do NOT skip the interactive triage phase — every finding must be confirmed by the user before issue creation. Evidence before assertions.

Invocation Modes

Two modes of operation:

  • Standalone (/discovery [scope]): Full 6-phase flow with interactive triage (Phases 0-6)
  • Embedded (from session-end when discovery-on-close: true): Phases 0-4 only, returns structured findings to session-end
<!-- scope-enum SSOT (#762): this line is the canonical token list; the wiring test derives SCOPE_TOKENS from it. Add/remove tokens HERE first, the test guards the other surfaces. -->

The scope argument accepts: all (default), code, infra, ui, arch, session, audit, vault, feature, or comma-separated like code,session.

Phase 0: Bootstrap Gate

Read skills/_shared/bootstrap-gate.md and execute the gate check. If the gate is CLOSED, invoke skills/bootstrap/SKILL.md and wait for completion before proceeding. If the gate is OPEN, continue to Phase 1.

<HARD-GATE> Do NOT proceed past Phase 0 if GATE_CLOSED. There is no bypass. Refer to `skills/_shared/bootstrap-gate.md` for the full HARD-GATE constraints. </HARD-GATE>

Phase 1: Read Session Config

Read and parse Session Config per skills/_shared/config-reading.md. Store result as $CONFIG.

Discovery-relevant fields (parse these specifically):

  • discovery-on-close, discovery-probes, discovery-exclude-paths, discovery-severity-threshold, discovery-confidence-threshold, discovery-parallelism
  • test-command, typecheck-command, lint-command
  • pencil, vcs, cross-repos, stale-issue-days

Phase 2: Stack Detection & Probe Activation

Detect the project's tech stack via marker file checks. Use Glob and run checks in parallel:

Marker File(s)Activates
package.jsonJS/TS probes
tsconfig.jsonTypeScript probes
requirements.txt / pyproject.tomlPython probes
Dockerfile / docker-compose.ymlContainer probes
vercel.json / .vercel/Vercel probes
.github/workflows/GitHub CI probes
.gitlab-ci.ymlGitLab CI probes
supabase/Supabase probes
next.config.* / nuxt.config.*SSR probes
tailwind.config.*Tailwind probes
Pencil in Session Configdesign-drift probe
.orchestrator/bootstrap.lockharness-audit probe
.vault.yaml OR Session Config vault-integration.enabled: truevault probes
package.json / requirements.txt / Cargo.toml AND Session Config slopcheck.enabled: true AND slopcheck.sources includes "discovery"supply-chain probe (skills/discovery/probes-supply-chain.md)
docs/ directory present AND Session Config docs-staleness.enabled: truedocs-staleness probe (skills/discovery/probes-docs.md)
CLAUDE.md (or AGENTS.md on Codex CLI) or README.md present in repo rootssot-code-diff probe (skills/discovery/probes-docs.md) — always active within the docs category, no Session Config gate

Build Activation Set

  1. Start with all probes whose marker files are present
  2. If discovery-probes is set in config, intersect with that list
  3. If a scope argument was passed, restrict to that category
  4. Remove probes whose activation conditions are not met

The audit probe activates when bootstrap.lock is present OR when discovery-probes config explicitly lists audit.

The vault probe activates when .vault.yaml is present in the repo root OR when vault-integration.enabled: true in Session Config OR when discovery-probes config explicitly lists vault.

The feature probe activates ONLY when the scope argument includes feature OR when discovery-probes config explicitly lists feature. It never activates under bare all — feature discovery is an explicitly requested scan, and its interactive router (below) cannot run in embedded mode.

Exclude Paths

Default exclude paths (always apply):

  • node_modules/, .git/, dist/, build/, .next/, .nuxt/, coverage/

Add any paths from discovery-exclude-paths in Session Config.

VCS Detection

VCS Reference: Detect the VCS platform per the "VCS Auto-Detection" section of the gitlab-ops skill.

Status Report

Report: "Discovery: [N] probes active across [categories]. Stack: [detected]. Threshold: [severity]."

Feature-Scope Router (standalone only)

Fires ONLY when the active scope set includes feature AND the skill is running standalone (coordinator context). In embedded mode (session-end dispatches discovery as an Explore subagent — AskUserQuestion is unavailable in subagents per .claude/rules/ask-via-tool.md AUQ-004), the router MUST NOT fire; proceed directly with the grounded scan as the non-interactive default.

Judgment-based PM work (opportunity framing, personas, market-sizing) deliberately stays OUT of the verified-findings pipeline (Epic #750) — this router is the fork point that keeps grounded, evidence-anchored discovery separate from open-ended product judgment.

When the gate above is satisfied, present exactly this AskUserQuestion (AUQ-003 shape) before proceeding to Phase 3:

AskUserQuestion({
  questions: [{
    question: "Scope `feature` was requested. How should this run handle it?",
    header: "Scope",
    options: [
      { label: "Grounded scan (Recommended)", description: "Every finding is tied to a file and line and is verified before it can become an issue. Cost: two extra probes (intent-drift, stubbed-dead-feature)." },
      { label: "Also judgment topics", description: "Same scan, plus open product questions (opportunity framing, personas) kept as notes. They never become issues; after Phase 5 you pick where they go." },
      { label: "Route out", description: "No scan at all. You get a pointer to /brainstorm (product ideation) or /grill (assumption stress-test) instead." },
      { label: "Skip", description: "Drops `feature` (the probes for half-built and drifted features) from this run; the other scopes still run." }
    ],
    multiSelect: false
  }]
})

On user selection (every branch is explicit — do not fall through):

  • "Grounded scan" → keep feature in the active scope set and continue to Phase 3 unchanged.
  • "Also judgment topics" → keep feature in the active scope set and continue to Phase 3 unchanged for the grounded probes. Collect any judgment-based product questions (opportunity framing, personas, market-sizing) encountered during the scan as plain notes — do not route them through Phase 4 (Verification) or Phase 6 (Issue-Creation) at any point. AFTER Phase 5 triage completes, present a SECOND AskUserQuestion that forks how the collected topics are handled:
AskUserQuestion({
  questions: [{
    question: "Where should the collected judgment topics go?",
    header: "Topics",
    options: [
      { label: "Inline synthesis (Recommended)", description: "Sketches an outcome/persona pass into `### Judgment Topics (non-verified)` (a report section that never becomes issues). Cost: no second run." },
      { label: "Route to /brainstorm", description: "Hands the topics to /brainstorm as its opening context, for a full question-and-answer design dialogue." },
      { label: "Route to /plan feature", description: "Hands the topics to /plan feature as its opening context, for feature-PRD scoping." }
    ],
    multiSelect: false
  }]
})
  • "Inline synthesis" → append a ### Judgment Topics (non-verified) section to the discovery report. For each collected topic, write a brief candidate outcome/opportunity sketch (Teresa Torres OST framing) and, where a persona angle is evident, a one-line persona note — every line explicitly labeled (non-verified sketch). This is prose synthesis, never a probe finding.
  • "Route to /brainstorm" → append the same ### Judgment Topics (non-verified) section, but render each topic as a one-line pointer plus the recommendation to invoke /brainstorm with the collected topic context pre-filled as its initial prompt. Do not auto-invoke /brainstorm — surface the recommendation and let the operator trigger it.
  • "Route to /plan feature" → same rendering as the /brainstorm branch above, pointing at /plan feature with the collected topic context pre-filled instead.

Invariant (PRD §4 Non-Goals) — holds across all three sub-branches above: judgment items are report-appendix ONLY — they MUST NOT become findings, MUST NOT pass through Phase 4 verification, and MUST NOT produce issues in Phase 6.

  • "Route out" → remove feature from the active scope set. Do NOT run the feature probes. Recommend the operator invoke /brainstorm or /grill after this run (name whichever fits the operator's question), then continue to Phase 3 with the remaining scopes — or, if feature was the ONLY requested scope, stop after reporting: "Feature scope routed out — no probes to run. Invoke /brainstorm or /grill directly."
  • "Skip" → remove feature from the active scope set before Phase 3. If feature was the only requested scope, stop with: "Feature scope skipped — nothing to run."

Phase 3: Probe Execution

--since Filtering (when since_ref is provided)

When since_ref is set (passed from the /discovery --since <git-ref> invocation):

  1. Call changedFilesSince(since_ref) from scripts/lib/discovery/helpers.mjs.
  2. If the helper throws (ref unresolvable), surface the error to the user and halt.
  3. If the result is [] (no files changed since the ref), emit:
    No files changed since <since_ref>. Skipping discovery.
    
    and exit with status 0. Do NOT fall back to a full-repo scan.
  4. If the result is a non-empty array, pass it as changedFiles context to each probe agent below.

Probe exemptions: The vault-staleness probe and the harness-audit probe are EXEMPT from --since filtering — they always scan the full repository because their analysis targets metadata (vault narrative staleness, bootstrap lock state) that is not file-diff-gated. This exemption is advisory: no code enforcement is applied in this wave. The probe agents will naturally read whole-repo state; the changedFiles context they receive from --since is informational and does not restrict their glob/grep scope.

Dispatch probe agents IN PARALLEL using the Agent tool. Group by category (max $CONFIG['discovery-parallelism'] agents, default 5):

Cursor IDE: No Agent() tool available. Run probes sequentially within the current session — one category at a time. Complete each category's analysis before moving to the next.

  • Code probes agent: Runs all activated code probes (hardcoded-values, orphaned-annotations, dead-code, ai-slop, type-safety-gaps, test-coverage-gaps, test-anti-patterns, security-basics)
  • Infra probes agent: Runs all activated infra probes
  • UI probes agent: Runs all activated UI probes
  • Arch probes agent: Runs all activated arch probes
  • Session probes agent: Runs all activated session probes
  • Audit probes agent: Runs harness-audit probe
  • Vault probes (skills/discovery/probes-vault.md): invokes skills/discovery/probes/vault-staleness.mjs and skills/discovery/probes/vault-narrative-staleness.mjs directly via node. Each probe returns {findings, metrics, duration_ms}. The runner reports FINDING: blocks per finding and appends summary records to .orchestrator/metrics/vault-staleness.jsonl and vault-narrative-staleness.jsonl.
  • Supply-chain probe (skills/discovery/probes-supply-chain.md): invokes skills/discovery/probes/supply-chain-slopcheck.mjs directly via node. Gated: only activates when slopcheck.enabled: true AND "discovery" is in slopcheck.sources (Session Config). The probe returns {findings, summary}. SLOP findings surface as critical, ASSUMED as medium, LEGITIMATE packages generate no finding. See probes-supply-chain.md for invocation details and classification reference.
  • Docs probe (skills/discovery/probes-docs.md): invokes skills/discovery/probes/docs-staleness.mjs AND skills/discovery/probes/ssot-code-diff.mjs directly via node. docs-staleness.mjs is gated: only activates when a docs/ directory exists AND docs-staleness.enabled: true (Session Config); it scans docs/*.md (root level) and docs/examples/*.md for filesystem-mtime staleness against the docs-staleness.thresholds.living threshold (default 90d) — docs/adr/ and docs/prd/ are deliberately excluded. ssot-code-diff.mjs is ungated (no Session Config key) — it always runs when CLAUDE.md or README.md is present, diffing hardcoded doc "count" claims (e.g. "(13 rules)") against the live code/filesystem value they describe. Both probes return {findings, metrics, duration_ms}. See probes-docs.md for invocation details and severity escalation.
  • Feature probes agent (skills/discovery/probes-feature.md): intent-drift + stubbed-dead-feature + feature-request-cluster probes. The first two MUST carry file_path:line_number anchors that survive the Phase 4.2 re-read (±3 lines); feature-request-cluster instead anchors on a VCS issue-ID set and MUST carry verification_method: vcs-issue — see Phase 4.2's dual verification path below.

Each agent receives:

  • The probe definitions from probes-intro.md (confidence scoring reference) AND the category-specific probes-<category>.md file for this agent's category (include the actual grep commands/patterns in the prompt)
  • The exclude paths list
  • The project root path
  • When since_ref was provided and changedFiles is non-empty: the changedFiles array (informational context for per-probe filtering — per-probe filtering enforcement is deferred to W3)
  • Tools: Read, Grep, Glob, Bash (read-only -- no Edit/Write)
  • Instruction: "Run each probe. For each finding, output EXACTLY this format:"
FINDING:
  probe: <probe_name>
  category: <category>
  severity: <critical|high|medium|low>
  file_path: <absolute path>
  line_number: <number>
  matched_text: <exact text from tool output>
  title: <short title for the finding>
  description: <1-2 sentence description>
  recommended_fix: <concrete fix suggestion>

"If a probe's activation condition is not met, skip it with: SKIPPED: <probe_name> -- <reason>" "If a probe command fails, skip it with: FAILED: <probe_name> -- <error>" "Do NOT fabricate findings. Only report what tool output confirms."

CRITICAL: run_in_background: false for all agents.

Skip categories with no activated probes (don't dispatch empty agents).

Phase 4: Verification & Scoring

After all probe agents complete:

4.1 Parse Findings

Collect all FINDING: blocks from agent outputs into a unified findings list.

4.2 Verification Pass

For EACH finding, use the verification path matching how the finding is anchored:

Default path — file-anchored findings (no verification_method field, or verification_method: file-line):

  1. Read the file at file_path:line_number using the Read tool
  2. Confirm matched_text appears at or near that line (+/-3 lines tolerance)
  3. If NOT confirmed, discard with note "false positive -- text not found at reported location"

VCS-issue-anchored findings (verification_method: vcs-issue) — e.g. feature-request-cluster, whose findings anchor on a set of issue IDs rather than a file location:

  1. For each issue ID in the finding's Location set, verify it via the VCS CLI — syntax reference: skills/gitlab-ops/SKILL.md § "Common CLI Commands" (glab issue view <IID> / gh issue view <NUMBER>); do not duplicate the CLI syntax here

  2. Confirm the issue exists and is still open (state != closed)

  3. If an issue ID no longer resolves or was closed since detection, drop it from the Location set; if EVERY issue in the set is gone/closed, discard the finding entirely with note "false positive -- all referenced issues closed/removed since detection"

  4. Report: "Verification: N confirmed, M discarded as false positives"

4.2a Confidence Scoring

For each verified finding, assign a confidence score (0-100) based on three factors:

FactorLow (+0)Medium (+10)High (+20)
Pattern specificityGeneric match (URL, TODO)Moderate (orphaned annotation, magic number)Specific (API key regex, eval(), SQL injection)
File contextTest fixture, example, seed data, docsUtility, config, scriptsProduction source, API handler, middleware
Historical signalPreviously dismissed as false positiveNo prior data (first occurrence)Recurring issue (confirmed in learnings.jsonl)

Scoring rules:

  1. Start at 40 (baseline)
  2. Add each factor's score (+0/+10/+20)
  3. Clamp to 0-100 range
  4. Critical severity override: findings with severity critical get a minimum confidence of 70 — they are NEVER auto-deferred

Threshold: Read discovery-confidence-threshold from Session Config (default: 60). If not configured, use 60.

Annotate each finding with its confidence score for Phase 5 presentation.

4.3 Deduplication

Two findings are duplicates if:

  • Same file_path AND
  • Overlapping line range (+/-5 lines) AND
  • Different probes

Keep the higher severity finding. Merge descriptions.

4.4 Apply Thresholds

  1. Severity filter: Remove findings below discovery-severity-threshold from Session Config.
  2. Confidence filter: Remove findings with confidence score below discovery-confidence-threshold (default: 60). Log filtered-out findings: "Auto-dismissed N low-confidence findings (below threshold [T]). Use discovery-confidence-threshold: 0 to see all."

4.5 Group by Category

Group remaining findings by category for Phase 5 presentation.

4.6 Embedded Mode Exit

If in embedded mode (called from session-end): STOP HERE. Return structured findings to the caller using this schema:

Embedded mode return schema:

{
  "findings": [
    {"probe": "string", "category": "string", "severity": "critical|high|medium|low", "confidence": 0-100, "file": "string", "line": number, "description": "string", "recommendation": "string"}
  ],
  "stats": {
    "probes_run": number,
    "findings_raw": number,
    "findings_verified": number,
    "false_positives": number,
    "user_dismissed": 0,
    "issues_created": 0,
    "by_category": {"<category>": {"findings": number, "actioned": 0}}
  }
}

Present both as structured data in your final output. Do not proceed to Phase 5.

Phase 5: Interactive Triage (Standalone Mode Only)

Loads persistent triage state, partitions findings into auto-deferred/high-confidence buckets, and walks the user through Critical/High findings individually and Medium/Low findings in a batch before Phase 6 issue creation.

See references/discovery-interactive-triage.md.

Read WHEN: running in standalone mode (not embedded mode — see Phase 4.6 Embedded Mode Exit above), after Phase 4 scoring completes.

Phase 6: Issue Creation & Report

6.1 Issue Creation

VCS Reference: Detect the VCS platform per the "VCS Auto-Detection" section of the gitlab-ops skill. Use CLI commands per the "Common CLI Commands" section.

For each approved finding:

  1. Format using the Discovery Finding Issue Template from issue-templates.md
  2. Determine labels: type:discovery + priority::<level> + area:<inferred from category/filepath> + status:ready
  3. Create issue via VCS CLI:
    • GitLab: glab issue create --title "[Discovery] <title>" --label "type:discovery,priority::<level>,area:<area>,status:ready" --description "<body>"
    • GitHub: gh issue create --title "[Discovery] <title>" --label "type:discovery,priority::<level>,area:<area>,status:ready" --body "<body>"
  4. Brief pause (1s) between creations for rate limiting

6.2 Final Report

When the active scope included feature AND at least one verified feature finding was approved into an issue, insert an Opportunity Solution Tree (OST) section between ### Created Issues and ### Dismissed Findings (shown below). This section is feature-scope-only — every other category keeps the flat ### Created Issues table as its sole findings view, unchanged.

## Discovery Report

### Summary
- Probes run: [N] across [categories]
- Raw findings: [N]
- Verified: [N] (false positives discarded: [M])
- User approved: [N]
- Issues created: [N]

### Created Issues
| # | Title | Priority | Area | Probe |
|---|-------|----------|------|-------|
| <IID> | <title> | <priority> | <area> | <probe> |

### Opportunity Solution Tree (feature scope only)
> Present ONLY when the active scope included `feature` and at least one verified feature finding was approved. Group the approved feature findings under a Teresa Torres OST hierarchy: **outcome** (the user/business result the product is steering toward) -> **opportunity** (the observed gap or unmet need the finding surfaces) -> **solution** (the finding itself — the created issue). Infer outcome/opportunity from the finding's probe + description; never fabricate a hierarchy level with no evidentiary basis — when the outcome is genuinely unclear, write "Outcome: (unclassified)" rather than guessing.

Example:
Outcome: Reduce time-to-first-value for new users
  Opportunity: Onboarding drops users before they reach the "aha" moment (intent-drift: docs claim auto-provisioning, code path is manual)
    Solution: #182 -- Implement auto-provisioning of default workspace
  Opportunity: Users repeatedly request the same missing capability without a tracked epic
    Solution: #191, #204, #211 -- feature-request-cluster: "CSV export" cluster (3 issues, no epic)

### Dismissed Findings
- [N] dismissed as intentional
- [M] dismissed as false positive

### Recommendations
- [suggestions based on finding patterns]

Critical Rules

  • NEVER fabricate findings -- every finding must come from tool output with verifiable evidence
  • NEVER create issues without user approval (standalone mode)
  • ALWAYS verify findings by re-reading the file at the reported line (Phase 4)
  • ALWAYS use AskUserQuestion for triage decisions -- never plain text options (On Codex CLI, use numbered lists as AskUserQuestion is not available)
  • ALWAYS reference gitlab-ops for VCS operations -- never duplicate CLI logic inline
  • If a probe command fails or tool is unavailable, skip gracefully, continue with others
  • If in embedded mode, stop after Phase 4, return findings as structured data
  • Respect discovery-severity-threshold -- filter before presenting to user
  • Default exclude paths always apply: node_modules/, .git/, dist/, build/, .next/, .nuxt/, coverage/

Phase 7: Capture Discovery Stats (Standalone Mode Only)

This phase runs only in standalone mode. Embedded mode returns findings to the caller.

After Phase 6 (Issue Creation) completes, prepare discovery statistics for session metrics:

  1. Count totals from the triage results:

    • probes_run: number of probes that were activated and executed
    • findings_raw: total findings before verification
    • findings_verified: findings that passed Phase 4.2 verification
    • false_positives: findings discarded during verification
    • user_dismissed: findings the user declined during Phase 5 triage
    • issues_created: issues created in Phase 6
    • by_category: per-category breakdown of findings and actioned items
  2. Report stats summary:

    Discovery stats: [probes_run] probes, [findings_raw] raw → [findings_verified] verified ([false_positives] false positives). User dismissed [user_dismissed]. Created [issues_created] issues.
    
  3. These stats are available for session-end to include in sessions.jsonl under the discovery_stats field. The discovery skill does NOT write to sessions.jsonl directly — session-end handles that.

Discovery Triage State (#419)

The JSONL schema (.orchestrator/metrics/discovery-triage.jsonl), fingerprint derivation, state enum (open/dismissed/accepted-as-known/reopened), re-run semantics, and the scripts/lib/discovery/triage-state.mjs module API that Phase 5 above reads and writes.

See references/discovery-triage-state.md.

Read WHEN: implementing or debugging Phase 5 triage persistence, or investigating why a finding was suppressed/re-shown across runs.

Anti-Patterns

  • DO NOT report findings without verifying them first — false positives erode user trust faster than missed issues
  • DO NOT skip the interactive triage phase — auto-creating issues for unconfirmed findings creates noise
  • DO NOT run probes outside the configured scope — if the user asked for code scope, don't scan infrastructure
  • DO NOT present findings without evidence (file path, line number, actual content) — assertions without proof are useless
  • DO NOT write to sessions.jsonl directly — session-end handles metrics persistence

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when the user asks to improve architecture, find refactoring opportunities, surface deepening opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable. Surfaces shallow modules and hypothetical seams using a precise vocabulary (Module / Interface / Implementation / Depth / Seam / Adapter / Leverage / Locality from LANGUAGE.md).

The English summary is being prepared. Showing the original description.

Kanevry/session-orchestrator52Updated Oct 26, 2026

Use this skill when running an autonomous session-orchestration loop. Chains session-start → session-plan → wave-executor → session-end for N iterations with all 10 kill-switches (SPIRAL, FAILED wave, carryover > 50%, max-hours, max-sessions, resource-overload, token-budget, stall-timeout, sub-threshold confidence, user-abort). Reads Mode-Selector output (Phase B) to decide auto-execute vs. fallback. Writes one autopilot.jsonl record per loop run. Phase C scaffold (issue #277); implementation lives in scripts/lib/autopilot.mjs (Phase C-1 follow-up).

The English summary is being prepared. Showing the original description.

Kanevry/session-orchestrator52Updated Oct 26, 2026

Use this skill when scaffolding the minimum repository structure required by session-orchestrator. Invoked automatically by the Bootstrap Gate when CLAUDE.md, Session Config, or bootstrap.lock is missing. Also available as /bootstrap for manual invocation. Three intensity tiers: fast (demos/spikes), standard (MVPs), deep (production/team).

The English summary is being prepared. Showing the original description.

Kanevry/session-orchestrator52Updated Oct 26, 2026

Use when you have a feature idea but the scope or UX is still ambiguous — runs a lightweight Socratic design dialogue (3-5 AUQ rounds) and writes a spec markdown file. Use BEFORE /plan feature when product intent needs validation; skip to /plan feature when scope is already clear. HARD-GATE prevents any code work until the design is user-approved.

The English summary is being prepared. Showing the original description.

Kanevry/session-orchestrator52Updated Oct 26, 2026

Use when detecting drift between CLAUDE.md (or AGENTS.md, the Codex CLI alias) / _meta narrative and live repository state. Ten checks: absolute-path resolution, 01-projects/ count claims, issue-reference freshness, session-file existence, command-count sync, session-config-parity (mandatory template keys = error, opt-in gaps = note, unknown local keys = warning), vault-dir-parity (CLAUDE.md vs AGENTS.md), generated-rule-staleness (WARN-only), rule-scoping (paths:/globs: frontmatter defects, dangling rule citations, zero-match globs), and docs-parity (docs/components.md count-claims vs on-disk counts, template-vs-reference config-key parity, stale .claude/metrics/ paths). Full per-check spec in the body table. Invoked as an opt-in session-end phase; mirrors vault-sync's lean JSON+exit-code contract.

The English summary is being prepared. Showing the original description.

Kanevry/session-orchestrator52Updated Oct 26, 2026

close

Free

End session with verification, commits, and documentation

The English summary is being prepared. Showing the original description.

Kanevry/session-orchestrator52Updated Oct 26, 2026

See all skills by Kanevry

Report a problem with this skill