explainer-artifact
Installation
SKILL.md
Explainer artifact
Contract
| Field | Bound contract |
|---|---|
| Trigger | The user asks for an explainer document for a concept, diff reference, idea, or work recap window, or invokes the skill bare. |
| Authority | Reversible local: writes only to an isolated scratch run directory under /tmp/odin-$(id -u)/explainer-artifact/; rollback is deleting the run directory. No remote mutation. |
| Side effect | Creates and structurally verifies a durable local explainer artifact under the scratch run directory, presents it to the user, and stops before publishing or remotely relocating it; a human performs any publication or remote relocation. |
| Done | A structurally verified explainer artifact exists in the scratch directory and is presented to the user; any publication or remote relocation remains an unexecuted human handoff. A run that correctly ends without an artifact, an operational question answered in chat, an empty recap window, a bare invocation the user did not answer, is equally done. |
Inputs
- A concept, a diff ref, an idea, or a work-recap window, supplied in the invocation or present in the current prompt. Optional: an audience other than the user and an output format (
mdinstead of the default HTML). - Bare invocation (no input): the skill asks one blocking question rather than producing a default artifact. If the user does not answer, the run ends as done with no artifact.
Procedure
- Classify the request into one of four input shapes, concept, diff, idea, or work-recap window, plus its audience. Classify plain language with no token by meaning. Routing guards: a verdict question ("Should we adopt X?") is not taught; a request to document a solved problem for future work is not taught. Explain an idea input as given: its implications and trade-offs. Never expand it into options or a requirements dialogue. Apply the operational-question gate: answer a diagnostic question ("why is this failing?") in chat rather than teaching it. Concept-vs-diff tiebreak: when a phrase names both a concept and a repo path, prefer diff when a ref is supplied and concept otherwise. Done when: the request is classified into one input shape with audience, or an operational question is answered in chat.