kramme-cc-workflow/skills/kramme:code:source-driven/SKILL.md
(experimental) Ground framework and library decisions in official documentation with explicit citation. Use when touching any external framework, library, CLI tool, or cloud service — especially recent versions where training data may be stale. Fetches via Context7 MCP or direct URLs, implements against documented patterns, and cites deep links with quoted passages when decisions are non-obvious.
npx skillsauth add abildtoft/kramme-cc-workflow kramme:code:source-drivenInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Ground framework and library decisions in official documentation. Training data goes stale silently — a pattern that was idiomatic two versions ago is often deprecated, renamed, or actively harmful today. This skill turns "I think I remember how this works" into an explicit workflow: detect the stack, fetch the current docs, implement against them, and cite what you used so a reviewer can check your work.
kramme:code:migrate.Skip for: generic programming concepts, internal project code, and well-established language-level features that haven't changed in years.
Read whichever of these exist:
package.json (Node/JS/TS)composer.json (PHP)requirements.txt / pyproject.toml / Pipfile (Python)go.mod (Go)Cargo.toml (Rust)Gemfile (Ruby)pom.xml / build.gradle (Java/Kotlin)Extract the libraries in play and their pinned versions. Then emit:
STACK DETECTED: <framework> <version>, <library> <version>, ...
Versions matter — React 18 and React 19 have materially different APIs.
If none of these files exist (global CLI tool, unversioned cloud service, ad hoc script), ask the user for the framework and version. If they can't supply one, emit UNVERIFIED rather than guessing.
Try Context7 MCP first if it's connected in the current harness (mcp__context7__resolve-library-id → mcp__context7__query-docs). It returns version-matched documentation directly.
If Context7 MCP is unavailable or doesn't cover the library, fall back to the harness's web-fetch capability (e.g., WebFetch) against direct URLs from the Source Hierarchy in references/source-hierarchy.md. Be precise — fetch the exact page you need, not the homepage.
If no fetch capability is available at all, emit UNVERIFIED instead of implementing from memory.
If two authoritative sources disagree, emit:
CONFLICT DETECTED: <source A> says X; <source B> says Y
Resolution: <which you followed and why>
Use the patterns the docs describe. If you cannot find documentation for a claim you need to make, stop and emit:
UNVERIFIED: <the claim that has no source>
Do not proceed silently with unverified claims and do not paper over them with a disclaimer. Either find a source, or surface the gap and ask.
Disclaimers don't help; flag or verify. Saying "this might be outdated" does not make the code correct — it just shifts the bug forward. Flag it with UNVERIFIED so a reviewer can see it, or go find the source.
For any non-obvious decision, include in the commit message, PR description, or inline comment:
Citations let a reviewer re-derive your decision. If they can't, the citation isn't doing its job.
Fetch the exact page, not the neighborhood.
Imprecise fetches return pages of navigation and marketing; precise fetches return the answer.
STACK DETECTED — emitted after the DETECT step; anchors every subsequent decision to a specific version.CONFLICT DETECTED — emitted when two authoritative sources disagree. Name both sources and the resolution.UNVERIFIED — emitted when a claim cannot be source-backed. Blocks silent passage of guesswork.kramme:code:migrate — version migrations are the highest-value use case for this skill. The migration target version is the stack you need current docs for.These are the lies you will tell yourself to skip the source step. Each one has a correct response:
STACK DETECTED and at minimum skim the changelog.UNVERIFIED or verify.CONFLICT DETECTED and name your resolution. Silent picks are unreviewable.If you notice any of these, stop and re-ground:
UNVERIFIED markers accumulating without being resolved before the PR opens.CONFLICT DETECTED marker.Before declaring done, ask one question: would a reviewer who follows each citation arrive at the same code you wrote? If not, fix the gap — usually an unresolved UNVERIFIED, a CONFLICT DETECTED with no recorded resolution, or a citation that points at a page that doesn't actually say what you claim.
tools
Requires Linear MCP. Implements one Linear issue end to end, selects applicable code-review, convention, and PR-refactor gates, runs them to bounded convergence, verifies, and optionally opens the PR and iterates on CI and review feedback until green. Use when the user wants a single Linear issue taken from implementation through a clean Pull Request. Not for implementation-only work, SIW-tracked issues, stacked PRs, existing PR updates, or post-merge rollout.
development
Reviews PR and local changes for convention drift and overcaution against documented rules and mined peer-file practice. Use for new patterns, dependencies, abstractions, or defensive complexity that departs from established practice; every finding cites evidence. Supports --inline. Not for general code quality (use kramme:pr:code-review) or spec review (use kramme:siw:spec-audit --team).
testing
Charts huge or foggy initiatives into a local `.context` decision map and resolves one typed frontier ticket per session until the work is ready for SIW or another execution workflow. Use when the route to a destination cannot fit in one agent session or parallel workspaces need coordinated planning state. Not for clear specs, ordinary issue decomposition, implementation, or Linear-native tracking.
development
Investigates a question against primary sources and saves one cited Markdown artifact. Use for reading legwork: official docs/API facts, source-code or spec checks, standards, and first-party service behavior before planning or implementation. Not for making product or architecture decisions, implementing code, broad web search, secondary blog summaries, or uncited answers.