check
Audit a project or pipeline against workspace conventions AND propose fixes for everything found.
Skill by hsigstad
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/hsigstad-check
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, data, security, research
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/check
What's inside
- Skill name
check- Description
- Audit a project or pipeline against workspace conventions AND propose fixes for everything found. Three modes: docs (doc-contract + source/build naming), ledgers (artifacts.yaml + validation.yaml + .run.json + cross-refs), cite (citation tokens against the registry + anchors + .bib). All three are fast and deterministic. Default runs all three and proposes changes. Use when the user invokes /check, /check <mode>, /check <slug>, or asks to 'lint the docs', 'audit conventions', 'check citations', 'check the ledgers', 'clean up the docs'.
- License
- MIT
- Instructions
- 192 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- fixes.md
SKILL.md (first lines)
# /check — Workspace convention audit (with proposed fixes)
Orchestrates the three **fast deterministic** project audits, **proposes
fixes for every finding**, and lets the user approve before any change
lands. Thin wrapper over the underlying tools — the skill's job is
**sequence, unified reporting, and the propose-then-apply interaction
shape**.
The default behavior is *propose-and-apply*, not read-only. Pass `--json`
when you want a raw report for tooling or CI.
| Mode | What it audits | Backing |
|---|---|---|
| `docs` | doc-contract presence, todo/done hygiene, thinking.md sections, source/build naming (incl. multi-output folder), pandas merge validate=, archive.md leakage, idea frontmatter | `research-kit/tools/check_docs.py` (deterministic, <2s workspace-wide) |
| `ledgers` | `artifacts.yaml` ↔ disk drift, `validation.yaml` pending/stale rows, `.run.json` sidecar provenance, doc ↔ artifacts.yaml cross-refs | `research-kit/tools/coverage.py` (deterministic; requires pyyaml) |
| `cite` | `[ns:key]` citation tokens against the workspace registry, internal anchors, and `.bib` files | `research-kit/tools/citations.py` (deterministic; lint only — no manifest sync) |
For IAT (INTENT / REASONING / ASSUMES / SOURCE) comment compliance, see
`/iat` — that audit is LLM-driven and slower, kept as its own skill so
`/check` stays fast.
For manifest regeneration (`docs/refs/manifest.toml`), see `/cite-sync` —
that's a write action, not an audit.
## How to invoke
| Form | What it does |
|------|--------------|
| `/check` | All three modes for the current project (inferred from cwd) or workspace-wide; **propose fixes and ask before applying** |
| `/check <slug>` | All three modes against a single project/pipeline |
| `/check docs` | Docs mode only |
| `/check ledgers` | Ledgers mode only |
| `/check cite` | Citation mode only |
| `/check <mode> <slug>` | One mode, one repo |
| `/check --full` | Show every instance in the report (not the grouped summary) |
| `/check --json` | Raw JSON output, no proposals — for CI, tooling, or "just tell me how dirty it is" |
## Finding the workspace root
Workspace root contains `CLAUDE.md` alongside `projects/`, `pipelines/`,
`ideas/`, `research/`. Search upward from cwd; project root is
`$ROOT/projects/<slug>/`. If neither cwd nor an explicit slug resolves, fail
with a useful message.
## Procedure
### 1. Resolve mode and scope
- Mode: `docs`, `ledgers`, `cite`, or `all` (default). If the first
positional arg matches a mode keyword, treat it as the mode; otherwise
treat it as a slug and use mode `all`.
- Scope: explicit slug, cwd's project, or workspace-wide if neither.
### 2. Run the underlying tool(s)
For each requested mode:
```bash
# docs
python3 $ROOT/research-kit/tools/check_docs.py [<slug>] --json
# ledgers (project-scoped only — no workspace-wide rollup)
python3 $ROOT/research-kit/tools/coverage.py --project $PROJ --json
# cite (lint mode; --sync is /cite-sync's responsibility)
python3 $ROOT/research-kit/tools/citations.py [<slug>] --json
```
If any tool errors, surface the traceback — do not silently fall back. If
`coverage.py` is missing, surface a hint to clone `research-kit`. If
`pyyaml` is missing, tell the user to `pip install pyyaml`; don't try to
install it yourself.
### 3. Render the focused report
Open with a one-line summary: `N gaps across {docs, ledgers, cite}` and
the totals.
For each mode, group findings by code and show counts + first 3 examples,
truncating with `… +N more`. `--full` enumerates every instance.
Use the underlying tool's grouped output for all three modes.
### 4. Propose fixes
This is the default. For every finding, derive a concrete fix (or a routed
follow-up). The interaction shape differs by mode because the work differs:
**Docs (`/check docs`): enter plan mode with the full fix list.**
Each finding gets a templated fix from `fixes.md` (sibling file). Build the
complete plan as a numbered list grouped by repo, then call `EnterPlanMode`
with the plan. The user sees every change at once and approves or redirects
before any edit lands. On approval, execute the file ops (renames, moves,
new files, merge `validate=` insertions) and commit per repo with the
message format in `fixes.md`. Findings without a templated fix
(`.merge() validate=` value choice, `archive.leakage`) go in a
**Manual review** section at the end
of the plan — surfaced but not auto-applied. Common fixes:
| Gap | Default fix |
|---|---|
| `doc.missing` | Create the file with the canonical heading template |
| `doc.unallowed` | Rename to canonical (e.g. `todos.md` → `todo.md`) or move to `briefs/`/`notes/`/`reference/` based on content |
| `*.naming-violation` | `mkdir` the script-named folder and `git mv` the sibling outputs into it |
| `*.orphan` / `*.orphan-folder` | Either rename the script to match, or delete the orphan (ask which) |
| `source.no-output` (data layers) | No fix — surface as manual ("build may be unbuilt") |
| `source.merge.no-validate` | Manual review — pick `one_to_one`, `many_to_one`, etc. per call |
| `project.no-claude-md` | Create `CLAUDE.md` at project root with a one-line summary + pointer to `docs/summary.md` |
| `gitignore.no-build` | Add `build/` to `.gitignore` (create the file if missing) |
| `decisions.bad-header` | Rewrite the header to `## YYYY-MM-DD — <title>` (em-dash). Auto-fix if the date is parseable; manual otherwise |
| `handoff.bad-filename` | `git mv` to `<ISO-timestamp>_<short-tag>.md` (manual: pick the right tag) |
| `source.underscore-cited` | Manual review — either rename the script to drop the underscore (and let it be a real artifact) or rewrite the citing doc to point elsewhere |
| `analysis.design.unknown-key` | Manual review — either fold the value into an allowed `design:` key (or `notes`), or, if it recurs across analyses, add the key to `docs/reference/analysis-schema.yaml` |
| `stale.runtime-disclaimer` | Auto — delete the `NOT runtime-tested` / `parse-checked only` line. The affordance was retired 2026-05-29 (see `research/rules/synthetic_and_bypasses.md`); the disclaimer is residual text, not a live convention. /check flags residue only; the queue/export skill (e.g. `/connect-run`) gates new scripts on the actual runtime test |
**Ledgers (`/check ledgers`): numbered list, per-gap apply/skip/quit.**
Plan mode is a bad fit here because most ledger gaps route to *other gatedFrom hsigstad/research-kit, MIT.
More from hsigstad/research-kit
- 0.524score
fetch-annotations
hsigstad
Pull hypothes.is annotations left by coauthors on a project's rendered site, map each one back to its source .md file, walk the user through applying (or…
SkillBFreshness: BClaude Code +9 - 0.524score
hypothesis
hsigstad
Populate or expand a project's docs/hypotheses.md (or docs/hypotheses/ folder) — testable predictions linking theory (docs/theory.md or docs/literature.md) to…
SkillBFreshness: BClaude Code +9 - 0.524score
backup
hsigstad
Back up expensive-to-regenerate pipeline/project artifacts to Dropbox with the right format and location.
SkillBFreshness: BClaude Code +9 - 0.524score
dropbox
hsigstad
Browse, upload, or download files on Dropbox via rclone.
SkillBFreshness: BClaude Code +9 - 0.524score
gmail
hsigstad
Draft an email for Henrik in his house style AND record the draft so the sent-vs-draft diff can teach the style.
SkillBFreshness: BClaude Code +9 - 0.524score
inbox
hsigstad
Send a message from one Claude session to another concurrent session — typically a sandboxed session asking the host (non-sandboxed) session to do something…
SkillBFreshness: BClaude Code +9 - 0.520score
findings-audit
hsigstad
Audit a project's empirical findings against external evidence — anecdotes (news, interviews, court opinions) and aggregate reports (CNJ, IPEA, OECD, FMI).
SkillBFreshness: BClaude Code +9 - 0.520score
findings
hsigstad
Populate, extend, refresh, or audit a project's docs/findings.md — a curated index of headline empirical findings and interpretations with confidence tags and…
SkillBFreshness: BClaude Code +9 - 0.499score
handoff
hsigstad
End-of-session: commit and push all changes across projects touched in this session.
SkillBFreshness: BClaude Code +9 - 0.474score
iat
hsigstad
Audit Python scripts for compliance with the Inline Audit Trail (IAT) convention — INTENT, REASONING, ASSUMES, SOURCE comments and validation guards — AND…
SkillCFreshness: CClaude Code +9 - 0.474score
cite-sync
hsigstad
Regenerate each project's docs/refs/manifest.toml from the workspace citation registry.
SkillCFreshness: CClaude Code +9 - 0.474score
data
hsigstad
Search the data catalog, variable dictionary, and data linkages for datasets, variables, or data sources.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 1
- Last commit (this folder)
- Jul 5, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/hsigstad/research-kit
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from hsigstad
- 0.524score
fetch-annotations
hsigstad
Pull hypothes.is annotations left by coauthors on a project's rendered site, map each one back to its source .md file, walk the user through applying (or…
SkillBFreshness: BClaude Code +9 - 0.524score
hypothesis
hsigstad
Populate or expand a project's docs/hypotheses.md (or docs/hypotheses/ folder) — testable predictions linking theory (docs/theory.md or docs/literature.md) to…
SkillBFreshness: BClaude Code +9 - 0.524score
backup
hsigstad
Back up expensive-to-regenerate pipeline/project artifacts to Dropbox with the right format and location.
SkillBFreshness: BClaude Code +9 - 0.524score
dropbox
hsigstad
Browse, upload, or download files on Dropbox via rclone.
SkillBFreshness: BClaude Code +9 - 0.524score
gmail
hsigstad
Draft an email for Henrik in his house style AND record the draft so the sent-vs-draft diff can teach the style.
SkillBFreshness: BClaude Code +9 - 0.524score
inbox
hsigstad
Send a message from one Claude session to another concurrent session — typically a sandboxed session asking the host (non-sandboxed) session to do something…
SkillBFreshness: BClaude Code +9
Cite this page
check skill. Agent Mart. https://agentmart.dev/skills/hsigstad-check (last updated 2026-10-24)