From context-framework
Interview-driven authoring of AI context artifacts (skills, AGENTS.md guides, guardrail specs) against a portable context framework. Use when the user wants to design a new skill, write an AGENTS.md file, encode a new rule for agents, or turn a prompt or intent into durable context. Self-discovers when the user says "create a skill", "write an AGENTS.md", "make this a rule", "I want AI to always do X", "encode this as context", "draft a guardrail", or asks to take a loose instruction and make it permanent. Runs an interview, applies the framework decision rule, writes the artifact, and attaches evidence that it activates as intended.
How this skill is triggered — by the user, by Claude, or both
Slash command
/context-framework:create-contextThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn an intent into a committed context artifact with evidence. One skill covers all three containers — guardrail, guide, skill — because the hard part is the decision and the proof, not the typing.
Turn an intent into a committed context artifact with evidence. One skill covers all three containers — guardrail, guide, skill — because the hard part is the decision and the proof, not the typing.
CLAUDE.md, .cursor/rules/*, copilot-instructions.md, GEMINI.md, etc.). Absent is the default. A thin @import shim is justified only when a tool cannot read canonical AGENTS.md or SKILL.md at all and the content is load-bearing and upgrading the tool is not an option — rationale must be stated and the shim tracked as tech debt. Same rule in two tool files is an automatic HALT and consolidate.TBD, TODO, handle edge cases, as needed, and so on) into the artifact. Drafts ship.| Rationalization | Reality |
|---|---|
| "The user told me what they want — I can skip the interview." | The user named a symptom. The interview finds the real intent, prior art, and proof. Skip it and ship dead context. |
| "This is obviously a skill, no need to run the decision rule." | The rule takes 10 seconds and catches guardrail-shaped work being written as prose. Run it every time. |
| "The framework doctrine is long, I'll work from memory." | Read references/framework.md. Do not author from memory. |
| "I'll skip activation evidence — the skill is clearly well-formed." | Well-formed is not activated. Run the evidence check. |
| "We only have Claude here, cross-tool portability is not my problem." | Static portability is always free. Run the check, report gaps. |
| "The user is in a hurry, I'll author first and validate later." | Then the validator becomes review, not a gate. HALT rules exist for this reason. |
Ask, in order:
<path-glob>, the relevant migration guide fires").HALT and surface the missing piece if any of these is vague. Do not guess.
Before writing, read:
AGENTS.md at root and along the target path.skills/ and .agents/skills/.State out loud: does this rule already exist? Is it machine-discoverable? If either is true, HALT and recommend reuse or deletion.
Apply references/framework.md decision rule. State the answer and the reason in one sentence each.
guardrail-spec.md.AGENTS.md entry (root or nested).SKILL.md.First match wins. Do not skip this step even if the user already named the container — the user can be wrong.
Declare:
Repo · Path · Global · Task.Always · On path · On event · On match · On invoke.Then map the activation to its portable replacement per references/framework.md (Portable Activation section). Tool-native mechanisms must be recreated in portable surfaces — no forking:
On path / glob → nested AGENTS.md at the path, or path hints inline in a skill description. Never paths: frontmatter. Never .cursor/rules/*.mdc as the primary home.Always → root AGENTS.md or skill description with broad task verbs.On invoke / trigger phrase → skill description with explicit trigger phrasing.On event (Claude hook) → guardrail implemented in repo tooling (lint, CI, pre-commit); hook stays in settings.json and the rule also lives as a guardrail-spec.State which of the four activation vectors the artifact relies on: description match, implicit path match, manual invocation, cross-skill reference. If only manual invocation is named, the description is too weak — strengthen it before authoring.
For skills, also:
Do NOT / HALT / NEVER statements are planned.name and description. Any paths, when_to_use, context, agent, model, globs, or alwaysApply is a portability regression. Path hints and trigger phrases live inside the description text.CRITICAL: in the skill description + named gate section in root AGENTS.md + pointer in the relevant nested AGENTS.md.From the user's success signal in Phase 1, write concrete activation criteria. Examples:
src/hai/foo.tsx cites this guide."run the migration follows this skill's process."If you cannot write the criteria, the intent in Phase 1 was incomplete. Return to Phase 1.
Copy the right template from templates/ and fill it in. Write to the target path the user named.
<repo>/skills/<name>/SKILL.md or <repo>/.agents/skills/<name>/SKILL.md per repo convention.AGENTS.md at root or nested at the relevant path. Path-scoped rules are a nested AGENTS.md — not a .cursor/rules/*.mdc file.<repo>/.context/guardrails/<name>.md or wherever the repo collects specs.Portable frontmatter for skills — allowlist: name, description. Forbidden: paths, when_to_use, context, agent, model, globs, alwaysApply. paths is a documented cross-tool regression; the others are tool-specific extensions with no portable guarantee. Path hints, trigger phrases, and prerequisite-gate language all live inside the description text.
Defense in depth for prerequisite gates — if the artifact is a gate the agent must check before acting, author all three surfaces together: CRITICAL: in the skill description, named gate section in root AGENTS.md, pointer in the nested AGENTS.md at the relevant path. This is not duplication — each surface is a different portable activation vector.
Cross-tool stance: do not create CLAUDE.md, .cursor/rules/*, copilot-instructions.md, GEMINI.md, or other tool-specific rule files. Absent is the default. If the repo already has them, note the drift in evidence and recommend collapsing to canonical AGENTS.md — propose a shim only if a specific tool cannot read canonical context and the content is load-bearing. This does not apply to tool mechanism surfaces (.claude-plugin/, .cursor-plugin/, hooks, slash commands, MCP config) — those live in their native surfaces.
Load references/validators.md. Run the section matching the container:
Then run the activation evidence check:
name and description present (skills). Any paths, when_to_use, context, agent, model, globs, or alwaysApply = fail.CRITICAL: if a prerequisite gate exists..cursor/rules/*.mdc as the primary home for a path-scoped rule — nested AGENTS.md is the portable replacement.CRITICAL: + root named gate + nested pointer).static only and flag the gap in the receipt.Write an evidence sidecar next to the artifact:
<artifact-dir>/EVIDENCE.md<artifact-dir>/AGENTS.evidence.md## Evidence section.The sidecar contains the full validator report (Tier 1/2/3), the activation check result, and an explicit list of what was proved vs. what could not be proved in the current environment.
Every evidence sidecar appends a one-liner to <repo>/.context/log.md if that path exists:
YYYY-MM-DD | <container> | <artifact>: <score>, activation: <pass|fail|static-only>, gap: <top issue>
Over time, the log reveals which containers and patterns consistently pass or fail — feeding future framework updates.
Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub gejustin/agent-development-kit --plugin context-framework