一键导入
corgispec-lint
Validate memory health across 14 checks — freshness, size caps, broken links, extraction completeness — with severity levels and auto-fix routing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Validate memory health across 14 checks — freshness, size caps, broken links, extraction completeness — with severity levels and auto-fix routing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create or complete a CorgiSpec planning package and synchronize one GitHub parent issue plus Task Group child issues. Use when proposing a change whose normalized tracking provider is GitHub.
Create or complete a CorgiSpec planning package and optionally synchronize GitLab issues. Use when proposing a new change or finishing an existing change whose normalized tracking provider is GitLab or none.
Execute or resume a CorgiSpec Run Contract v2 one Task Group at a time through the canonical corgispec loop CLI. Use when starting, continuing, fixing, committing, recovering, or finalizing an implementation run; never write loop state or evidence artifacts directly.
Implement exactly one pending Task Group from a CorgiSpec change and optionally synchronize GitLab progress. Use when applying a change whose normalized tracking provider is GitLab or none.
Validate and archive a completed CorgiSpec change, extract durable knowledge, and optionally close GitLab tracking. Use when archiving a change whose normalized tracking provider is GitLab or none.
Compare fresh CorgiSpec planning, implementation, Git, and run evidence and close only implementation gaps through the canonical converge CLI. Use after implementation or review when deciding whether a change is converged, planning needs update, or a new append-only Task Group is required.
| name | corgispec-lint |
| description | Validate memory health across 14 checks — freshness, size caps, broken links, extraction completeness — with severity levels and auto-fix routing. |
| license | MIT |
| compatibility | Requires memory/ and wiki/ directories (created by corgispec-memory-init). |
| metadata | {"author":"corgispec","version":"1.0","generatedBy":"1.0.0"} |
Validate memory and wiki health with 14 structured checks.
Performs a comprehensive health check on the project's memory layer (memory/ and wiki/), producing a structured report with findings at three severity levels: error, warning, and info.
The lint skill is read-only during checks — it gathers evidence and reports findings. It does NOT auto-fix issues. Fixes are suggested with actionable instructions.
/corgi-lint for a periodic health checkcorgispec-archive (recommended, not blocking)Do not use this skill to modify memory files, initialize structure, or extract knowledge.
memory/ directory exists with at least session-bridge.mdwiki/ directory exists with at least hot.md and index.mdcorgispec-memory-initIf preconditions fail, report: "Memory structure not found. Run /corgi-memory-init first." and stop.
Context Gate: If session context already contains ALL of: isolation.mode, active changes with worktree paths, current branch
→ Gate passed — SKIP config reading below and proceed to the next step.
Otherwise: read openspec/config.yaml and proceed with discovery.
Check that the following paths exist:
memory/session-bridge.mdmemory/pitfalls.mdwiki/hot.mdwiki/index.mdIf any are missing, report which ones and stop with a suggestion to run /corgi-memory-init.
Execute each check in order. Record findings with severity, description, and suggested fix.
Severity: ⚠️ warning
Procedure:
memory/session-bridge.mdupdated: field from YAML frontmatterPass condition: Updated within the last 30 days.
Fail finding: "session-bridge.md last updated {N} days ago (threshold: 30 days)"
Suggested fix: "Update session-bridge.md with current session state, or mark as intentionally stale if project is dormant."
Severity: ⚠️ warning
Procedure:
wiki/hot.mdupdated: field from YAML frontmatterPass condition: Updated within the last 14 days.
Fail finding: "wiki/hot.md last updated {N} days ago (threshold: 14 days)"
Suggested fix: "Update hot.md with current project state during next session."
Severity: 🔴 error
Procedure:
.md files in memory/ and wiki/ recursively[[target]] and [[target|alias]] patternswiki/ or memory/ → treat as relative to project root|alias portion.md if no extensionPass condition: All wikilinks resolve to existing files.
Fail finding: "Broken wikilink in {source_file}:{line}: [[{target}]] — file not found"
Suggested fix: "Create the missing file, fix the link target, or remove the dead link."
Severity: ⚠️ warning
Procedure:
memory/pitfalls.md## Active section- ):
[[...]] or a change reference (text like change:, from:, or source: followed by an identifier)Pass condition: Every active pitfall entry has at least one source reference.
Fail finding: "Pitfall entry without source link: '{entry_text_first_40_chars}...'"
Suggested fix: "Add a source link to identify which change introduced this pitfall. Format: (source: [[change-name]])"
Severity: ℹ️ info
Procedure:
wiki/architecture/implicit-contracts.md## Contracts:
Pass condition: All contract entries have both a description and a file/module reference, or the file is still in placeholder state.
Fail finding: "Implicit contract '{name}' lacks file/module reference — hard to verify"
Suggested fix: "Add specific file paths or module names that enforce this contract."
Severity: ⚠️ warning
Procedure:
.md files in wiki/ recursively (excluding _index.md files).md files in memory/ and wiki/ for wikilinksPass condition: Every non-index wiki page has at least one incoming wikilink.
Fail finding: "Orphan page: {path} — no incoming wikilinks from memory/ or wiki/"
Suggested fix: "Add a link to this page from the relevant _index.md or from wiki/index.md."
Severity: ℹ️ info
Procedure:
openspec/changes/ that contain a tasks.md with all tasks marked [x] (completed changes)wiki/sessions/{change-name}.md existsPass condition: All recently completed changes have a corresponding session summary.
Fail finding: "Completed change '{name}' has no session summary at wiki/sessions/{name}.md"
Suggested fix: "Run /corgi-archive on this change to trigger knowledge extraction, or manually create the session summary."
Severity: 🔴 error
Procedure:
CLAUDE.md exists → search for ## Session Memory ProtocolCLAUDE.md, check AGENTS.md → search for ## Session Memory ProtocolPass condition: At least one agent config file contains ## Session Memory Protocol.
Fail finding: "Session Memory Protocol section missing from agent config file"
Suggested fix: "Run /corgi-memory-init to inject the protocol, or manually add the ## Session Memory Protocol section."
Severity: ⚠️ warning
Procedure:
wiki/hot.md--- delimiters)Pass condition: Word count ≤ 600.
Fail finding: "wiki/hot.md is {N} words (hard cap: 600 words)"
Suggested fix: "Trim the oldest entries from 'Recently Shipped' or 'Recent Decisions' sections. Target: 500 words."
Severity: ⚠️ warning
Procedure:
wiki/index.mdPass condition: Line count ≤ 80.
Fail finding: "wiki/index.md is {N} lines (hard cap: 80 lines)"
Suggested fix: "Archive completed-change entries from 'Session History' section. Target: 40 lines."
Severity: ℹ️ info
Procedure:
memory/pitfalls.md## Active section- that aren't the placeholder text)Pass condition: Active entry count ≤ 20.
Fail finding: "memory/pitfalls.md has {N} active entries (cap: 20)"
Suggested fix: "Rotate the oldest 10 entries to the ## Archive section. Keep the most relevant/recent pitfalls active."
Severity: ⚠️ warning
Procedure:
_index.md file:
.md files in the directory (excluding _index.md itself)_index.md and extract all wikilinks ([[...]]).md file should be referenced by at least one wikilink in _index.mdwiki/architecture/ (planned but not active)unlisted: true in frontmatterwiki/hot.md, wiki/index.md, wiki/schema.md, wiki/log.md (no _index.md parent)Pass condition: Every non-exempt .md file in a wiki subdirectory appears in its _index.md.
Fail finding: "File {path} not listed in {dir}/_index.md"
Suggested fix: "Add a wikilink entry for this file in the corresponding _index.md, or add unlisted: true to the file's frontmatter if intentionally excluded."
Severity: ⚠️ warning
Procedure:
wiki/schema.md to load the page type → required fields mapping.md file in wiki/ recursively (excluding _index.md files):
type: wiki is present, identify the page type from the file's parent directory name (patterns → pattern, sessions → session, decisions → decision, research → research, meta → meta)Pass condition: All wiki pages have the required frontmatter fields for their type.
Fail finding: "File {path} (type: {type}) missing required field: {field}"
Suggested fix: "Add the missing frontmatter field. See wiki/schema.md for required fields per page type."
Severity: ℹ️ info
Procedure:
wiki/log.md^YYYY-MM-DD |).md files across wiki/sessions/ and wiki/patterns/ (the two directories where archive/extract creates files)Pass condition: Log entries exist for each distinct change mentioned in session files.
Fail finding: "wiki/log.md has {N} entries but wiki/sessions/ has {M} files — possible missing log entries"
Suggested fix: "Backfill wiki/log.md with entries for unlogged archive events. See wiki/schema.md for format."
Assemble all findings into a structured report. Write to wiki/meta/lint-report-{YYYY-MM-DD}.md (overwrite if same-day report exists).
---
type: wiki
generated: {YYYY-MM-DD}
tags: [lint, meta]
---
# Lint Report — {YYYY-MM-DD}
## Summary
| Severity | Count |
|----------|-------|
| 🔴 Error | {N} |
| ⚠️ Warning | {N} |
| ℹ️ Info | {N} |
| ✅ Pass | {N} |
**Overall**: {PASS if 0 errors, WARN if 0 errors but has warnings, FAIL if any errors}
## Findings
### 🔴 Errors
{list of error findings, or "None"}
### ⚠️ Warnings
{list of warning findings, or "None"}
### ℹ️ Info
{list of info findings, or "None"}
## Checks Passed
{list of passing checks with ✅}
## Suggested Actions
{prioritized list: errors first, then warnings, then info}
Display the summary to the user:
wiki/meta/lint-report-{date}.md---)|alias before path resolution)_index.md files (these are navigation hubs, exempt from orphan check)