mirror of
https://github.com/alirezarezvani/ClaudeForge.git
synced 2026-07-05 03:13:15 -04:00
45767e8840
Three new task-style skills, each using Anthropic's context: fork + agent:
Explore so the work happens in an isolated subagent context and only a
short summary returns to the main session.
skill/claude-md-drift-audit/SKILL.md (51 lines):
Walks the last N days of git history (default 7) and flags CLAUDE.md
lines that reference deleted paths, renamed paths, or removed
dependencies from that window. Returns a punch list with file:line.
Read-only. Standalone invocation: /claude-md-drift-audit [days=7].
skill/claude-md-link-check/SKILL.md (51 lines):
Verifies every @path chain import and every relative markdown link
inside every CLAUDE.md resolves to an existing file. Returns broken
links with file:line. Read-only. Standalone: /claude-md-link-check
[path-glob].
skill/claude-md-dependency-rescan/SKILL.md (54 lines):
Re-detects the project's tech stack from package.json /
requirements.txt / pyproject.toml / go.mod / Cargo.toml and diffs
against every CLAUDE.md's Tech Stack section. Returns added /
removed / renamed per file. Read-only. Standalone:
/claude-md-dependency-rescan [manifest-path].
command/sync-claude-md.md:
- argument-hint and when_to_use mention --weekly.
- New Phase 0 (only when --weekly is passed): invoke the three skills
above in parallel via the Skill tool, aggregate findings into
## Weekly Audit Summary, then proceed to existing Phase 1.
- Without --weekly, Phase 0 is skipped entirely (no behaviour change
for normal sync runs).
.claude-plugin/plugin.json:
skills array now lists all five entries (existing two + three new).
Verified (6/6 smoke tests):
- Plugin manifest is valid JSON; 5 skills registered; all 8
referenced paths resolve on disk.
- Each new SKILL.md parses; context=fork, agent=Explore, both
description and when_to_use present, allowed-tools is a list,
body ≤ 60 lines.
- Each body is imperative (numbered steps present, not reference
material — fork-context requires explicit task instructions).
- Sync command body contains Phase 0, all three skill references,
parallel-invocation language, and Skill in allowed-tools.
- Skill name in frontmatter matches the directory name for every
new skill (so /claude-md-drift-audit etc. register correctly).
52 lines
2.1 KiB
Markdown
52 lines
2.1 KiB
Markdown
---
|
|
name: claude-md-link-check
|
|
description: Verify every @path chain import and every markdown link inside every CLAUDE.md in this project resolves to an existing file. Read-only — returns broken links with file:line refs, never edits.
|
|
when_to_use: |
|
|
Use when the user asks "check my CLAUDE.md links", "are the @-imports still valid?",
|
|
"find broken cross-references", or as part of /sync-claude-md --weekly.
|
|
argument-hint: "[path-glob]"
|
|
context: fork
|
|
agent: Explore
|
|
allowed-tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- "Bash(find:*)"
|
|
- "Bash(test:*)"
|
|
- "Bash(ls:*)"
|
|
disable-model-invocation: false
|
|
---
|
|
|
|
# CLAUDE.md Link Check (forked, read-only)
|
|
|
|
Optional path-glob: `$ARGUMENTS` (default `.` — entire tree).
|
|
|
|
Run these steps in order. Do not modify any file.
|
|
|
|
1. **Inventory.** `find <root> -name "CLAUDE.md" -type f -not -path "*/.git/*" -not -path "*/node_modules/*"`. Also include `.claude/rules/*.md`. Record paths.
|
|
2. **Extract candidates** from each file:
|
|
- **Chain imports** — lines matching `^@\S+`. The literal after `@` is a relative path.
|
|
- **Markdown links** — `[text](target)` where `target` is not an HTTP(S) URL, not `mailto:`, not a bare anchor `#section`.
|
|
3. **Resolve each candidate** relative to the file containing it (use `Read` on the parent file to confirm position, then `test -e <resolved-path>` or `Glob`).
|
|
- For `@../CLAUDE.md` inside `skill/CLAUDE.md`, resolved path is `CLAUDE.md`.
|
|
- For `[Backend](backend/CLAUDE.md)` inside the root, resolved path is `backend/CLAUDE.md`.
|
|
4. **Return** the report in this exact shape:
|
|
|
|
```
|
|
## Link Check
|
|
|
|
Files inspected: <count>
|
|
References checked: <chain_imports> @-imports, <md_links> markdown links
|
|
|
|
### Broken
|
|
- <file>:<line> — `<original-target>` → does not resolve (expected `<absolute-path>`)
|
|
- ... (omit section if empty)
|
|
|
|
### Clean
|
|
<count> references resolved.
|
|
```
|
|
|
|
5. If everything resolves, return exactly `## Link Check\n\nAll <N> references resolved across <M> files.`. Do not pad.
|
|
|
|
**Hard rule**: never invent a fix. Report the broken target verbatim. Repair is the user's call (or `/sync-claude-md`'s).
|