Obliteratus
RedWoodOG/Hermes-Desktop
Remove refusal behaviors from open-weight LLMs using OBLITERATUS — mechanistic interpretability techniques (diff-in-means, SVD, whitened SVD, LEACE, SAE decomposition, etc.) to excise guardrails…
A skill your agent uses when authoring or repairing Kilroy Attractor DOT graphs from requirements, with template-first topology, routing guardrails, and validator-clean output.
$ npx skills add danshapiro/kilroy --skill create-dotfile -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install danshapiro/kilroy create-dotfile --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/create-dotfile .claude/skills/create-dotfile && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "create-dotfile" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/create-dotfile into .claude/skills/create-dotfile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dotfile", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/danshapiro/kilroy/tree/main/skills/create-dotfileType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add danshapiro/kilroy --skill create-dotfile -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install danshapiro/kilroy create-dotfile --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/create-dotfile .agents/skills/create-dotfile && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "create-dotfile" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/create-dotfile into .agents/skills/create-dotfile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dotfile", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add danshapiro/kilroy --skill create-dotfile -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install danshapiro/kilroy create-dotfile --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/create-dotfile .cursor/skills/create-dotfile && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "create-dotfile" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/create-dotfile into .cursor/skills/create-dotfile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dotfile", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/danshapiro/kilroy.git --path skills/create-dotfile--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add danshapiro/kilroy --skill create-dotfile -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install danshapiro/kilroy create-dotfile --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/create-dotfile .gemini/skills/create-dotfile && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "create-dotfile" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/create-dotfile into .gemini/skills/create-dotfile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dotfile", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install danshapiro/kilroy create-dotfileInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add danshapiro/kilroy --skill create-dotfile -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/create-dotfile .github/skills/create-dotfile && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "create-dotfile" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/create-dotfile into .github/skills/create-dotfile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dotfile", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add danshapiro/kilroy --skill create-dotfile -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install danshapiro/kilroy create-dotfile --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/create-dotfile .opencode/skills/create-dotfile && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "create-dotfile" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/create-dotfile into .opencode/skills/create-dotfile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dotfile", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
create-dotfileA skill your agent uses when authoring or repairing Kilroy Attractor DOT graphs from requirements, with template-first topology, routing guardrails, and validator-clean output.
Create Dotfile is an agent skill from danshapiro/kilroy. Use when authoring or repairing Kilroy Attractor DOT graphs from requirements, with template-first topology, routing guardrails, and validator-clean output.
Its SKILL.md is about 6.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `hooks/validate-dot.sh`, `hooks/validate-dot.test.sh` and `preferences.yaml`).
It sits in AI & LLM Engineering, covering LLM guardrails. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b55fb0f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Shell), which the agent can run.
Shell commands in SKILL.md call:
shgitplaywrightnpmgoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Create Dotfile loads about 6.4k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 2,866 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from danshapiro/kilroy at commit b55fb0f, republished under its MIT licence (© danshapiro). 2,866 words, ~6,353 tokens.
.claude/skills/create-dotfile/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.This skill owns DOT graph authoring and repair for Attractor pipelines.
In scope:
.dot graph.Out of scope:
run.yaml / run.json) authoring and backend policy details. Use create-runfile for that.Core principle:
Default topology source:
skills/create-dotfile/reference_template.dotModel defaults source:
skills/create-dotfile/preferences.yamlRun: kilroy attractor modeldb suggest
Capture the output. Use ONLY the model IDs listed in the output. Do not use
model IDs from memory — they go stale. If the command is unavailable, default
to: claude-sonnet-4.6 (anthropic), gemini-3-flash-preview (google),
gpt-4.1 (openai).
no fanout, model/provider requirements, deliverable paths).reference_template.dot for node shapes, routing, and loop structure.no fanout or single path, remove fan-out/fan-in branch families.shape=tripleoctagon (parallel.fan_in) uses FanInHandler winner selection/fast-forward semantics.shape=box node is a manual merge handoff: branch worktrees are passed to the LLM in that box node, and the prompt must instruct the node to manually inspect and merge branch outputs (including git-based workflows such as git diff, commit inspection, and merge/cherry-pick by branch head_sha when appropriate).implement node into per-module fan-out nodes (e.g. implement_core, implement_api, implement_data_layer) with a merge_implementation synthesis node. Each module node targets a bounded deliverable (~200–500 lines). A single implement node for large codebases produces stub implementations that pass structural checks but deliver no functional behavior.implement_X → merge_implementation) or sequential chain as appropriate. Each implement_X node writes to .ai/runs/$KILROY_RUN_ID/module_X_impl.md and commits the code. merge_implementation synthesizes integration points and resolves conflicts.Analyze-before-implement (required when porting or reading existing source): When the task involves translating, porting, or extending an existing codebase, insert a dedicated analysis cluster BEFORE any implement_* nodes:
analyze_fanout (shape=component) → analyze_<module>×N (shape=box, auto_status=true)
→ merge_analysis (shape=box, auto_status=true) → [implement cluster]Each analyze_<module> node reads specific source files and writes a compact design doc
to .ai/runs/$KILROY_RUN_ID/design_<module>.md (under 300 lines — spec only, no implementation code).
merge_analysis verifies all design docs exist and are cross-module consistent.
Only after merge_analysis succeeds does the pipeline proceed to implement_* nodes.
See skills/create-dotfile/reference_template.dot OPTIONAL comments for stub examples.
auto_status=true assignment rules:
model_stylesheet.shape=box node resolves provider + model via attrs or stylesheet.cli vs api) out of DOT; backend belongs in run config.model_stylesheet declarations MUST use semicolons to separate property-value pairs within each selector block. Omitting semicolons causes silent parsing failures where nodes resolve to no provider.* { llm_model: gemini-2.0-flash; llm_provider: google; }* { llm_model: gemini-2.0-flash llm_provider: google } — space-separated declarations silently fail.model_stylesheet: verify each {} block uses only semicolon-terminated declarations; no two property names appear adjacent without a semicolon separator.claude-opus-4.6, claude-sonnet-4.6, claude-haiku-4.5. Never use dashes in the version suffix — claude-opus-4-6 is wrong and will cause a validation ERROR. The three current canonical Anthropic IDs are: claude-opus-4.6, claude-sonnet-4.6, claude-haiku-4.5.gemini/google_ai_studio -> google, z-ai/z.ai -> zai, moonshot/moonshotai -> kimi, minimax-ai -> minimax.internal/attractor/modeldb/pinned/openrouter_models.json,internal/attractor/modeldb/manual_models.yaml (if present),skills/shared/model_fallbacks.yaml (backup only when other sources fail).glm-5 must not become glm-4.5).llm_model (normalize whitespace only) instead of guessing a nearby model.glm-5.0 -> glm-5 for provider zai).skills/create-dotfile/preferences.yaml defaults.shape=box prompt must include both $KILROY_STAGE_STATUS_PATH and $KILROY_STAGE_STATUS_FALLBACK_PATH.auto_status=true suppresses writing status=success on normal completion. It does NOT remove the requirement to include $KILROY_STAGE_STATUS_PATH and $KILROY_STAGE_STATUS_FALLBACK_PATH in the prompt — those paths are still required for failure-case writes. For auto_status nodes, phrase it as:"Write to $KILROY_STAGE_STATUS_PATH (fallback: $KILROY_STAGE_STATUS_FALLBACK_PATH)
ONLY on failure: {"status":"fail","failure_reason":"...","failure_class":"..."}"status_contract_in_prompt warnings.failure_reason and failure_class are required — not optional. Missing failure_class defaults to deterministic, which is tracked by the cycle breaker. Silently omitting it makes the breaker behavior unpredictable.failure_signature to a stable short key: "failure_signature":"compile_errors". This prevents the same root cause from appearing as distinct signatures and defeating the cycle breaker. See Cycle Detection Contract section below..ai/runs/$KILROY_RUN_ID/* producer/consumer paths exact; no filename drift..ai/runs/$KILROY_RUN_ID/... everywhere. Root .ai is not implicitly ingested.max_tokens (output token cap, default 32768): Every provider adapter defaults to 32768 output
tokens per response. This is a per-response generation cap — completely separate from the model's
input context window. For nodes that write large files (full source modules, long docs), leave this
at the default or increase it. For classification-only or short-answer nodes, reducing it is fine.
Set it explicitly when you want deterministic behavior regardless of provider defaults:implement [shape=box, max_agent_turns=300, max_tokens=32768, prompt="..."]max_tokens on code-generating nodes is the most common silent failure
mode: the model generates a large write_file call, hits the cap, Gemini/Anthropic return an empty
or truncated response, and Kilroy interprets the session as cleanly ended (auto_status=true
writes {"status":"success"}), producing an infinite do-nothing loop.shape=parallelogram nodes must use tool_command.verify_runtime, verify_api_contract, verify_cli_behavior, verify_ui_smoke). Use checks that prove the deliverable actually works for the intended use case.verify_browser, verify_e2e) and runner commands (playwright test, cypress run, npm run e2e) so intent is unambiguous.collect_browser_artifacts=true on that verify node.AC1: src/auth.py — verify token issuance and expiry behaviour
AC2: src/storage.py — verify data persistence across restartshape=parallelogram verify node whose pass/fail depends on decisions made by implementation nodes — package manager, build system, directory layout, language runtime — MUST use tool_command="sh scripts/validate-{stage}.sh" rather than inline tool calls. The implementation node responsible for project scaffolding MUST write scripts/validate-build.sh, scripts/validate-fmt.sh, and scripts/validate-test.sh as committed deliverables. Scripts MUST open with #!/bin/sh and MUST NOT assume any runtime beyond what check_toolchain confirmed. Rationale: ingest-time tool_command strings embed assumptions about structure the implementation loop has not yet made; when the loop's choices diverge — different directory names, package managers, or build systems — the verify node fails deterministically and no postmortem routing can repair it.scripts/validate-test.sh MUST write deterministic evidence artifacts under .ai/runs/$KILROY_RUN_ID/test-evidence/latest/ and produce .ai/runs/$KILROY_RUN_ID/test-evidence/latest/manifest.json mapping each IT-* scenario ID to artifact paths/types and pass/fail status. UI scenarios require screenshot evidence; non-UI scenarios require text/structured evidence. Do not require a specific test framework — require artifact outcomes.scripts/validate-test.sh MUST emit best-effort evidence and a manifest entry even when tests fail (for example command exits non-zero). Missing evidence must be explicit in manifest fields so postmortem can diagnose incomplete capture as a finding.verify_artifacts checks that manifest scenario IDs match the DoD integration scenarios and that each scenario satisfies required artifact types (for example screenshots for UI scenarios) before semantic review proceeds.=, !=, &&.loop_restart=true only for context.failure_class=transient_infra.postmortem node MUST have at least three condition-keyed outbound edges covering distinct outcome classes (e.g. impl_repair, needs_replan, needs_toolchain or equivalents for the task domain) before the unconditional fallback. A postmortem with only one unconditional edge is invalid — it prevents recovery classification from routing differently and collapses all failure modes into a single path.postmortem MUST come last among its outbound edges.postmortem prompt MUST compare the current failing AC set against the previous iteration's failing AC set (stored in context key last_failing_acs). If the sets are identical — zero progress — the postmortem MUST route needs_replan, not impl_repair. The default impl_repair applies ONLY on the first occurrence of a failure. Identical repeated failures are a signal that the implementation approach is wrong, not that another repair pass will help. Add loop_restart_persist_keys="last_failing_acs" to the graph attrs so this key survives loop restarts.implement prompt MUST require that on any repair pass (when .ai/runs/$KILROY_RUN_ID/postmortem_latest.md or .ai/runs/$KILROY_RUN_ID/review_consensus.md exists), the node runs ./scripts/validate-build.sh and re-reads each targeted file to confirm the fix is present before exiting. Silent exit (auto-success) on a repair pass without self-verification is the primary cause of no-progress cycles.postmortem prompt MUST read .ai/runs/$KILROY_RUN_ID/test-evidence/latest/manifest.json when present. For each failed or suspicious IT-* scenario, it MUST read listed artifacts that can materially improve diagnosis and cite artifact file paths in .ai/runs/$KILROY_RUN_ID/postmortem_latest.md. It may skip an artifact only with an explicit reason (missing/unreadable/not produced), which becomes a finding.The engine tracks a map[signature]int where signature = nodeID|failureClass|normalizedReason. When the same (node, class, reason) tuple appears loop_restart_signature_limit times (default 3), the run aborts with "deterministic failure cycle detected." Understanding this mechanism is required to design pipelines that terminate correctly without false-positive aborts.
What counts toward the limit:
status=fail or status=retry outcomes enter the tracker. Custom non-fail statuses (more_work, impl_repair, needs_revision, etc.) do not — see the non-fail loop hole below.failure_class=deterministic and failure_class=structural are tracked. transient_infra is excluded (it routes through the loop_restart circuit breaker instead). Any unrecognized or missing failure_class defaults to deterministic and is tracked.implement succeeds 10 times but verify_build fails with the same signature 5 times across those cycles, the breaker fires on the 5th hit. Routing through postmortem does not reset the map either — postmortem's own outcome is non-fail (impl_repair etc.) and is invisible to the tracker.The failure_signature field stabilizes the reason component:
By default, failure_reason is normalized (lowercase, hex→<hex>, digits→<n>, comma-spaces collapsed) to form the reason component of the signature. For any node that emits variable failure prose, set an explicit stable key:
{
"status": "fail",
"failure_reason": "cargo build returned 47 errors in src/lib.rs line 203...",
"failure_signature": "compile_errors",
"failure_class": "deterministic_agent_bug"
}The failure_signature value replaces failure_reason as the reason component. This collapses all "compile error" variants into one counter regardless of error count, line numbers, or message wording.
Set failure_signature on:
"missing_files" or "missing_design_docs")."compile_errors" vs "missing_wasm_exports".The non-fail loop_restart hole:
loop_restart=true edges carrying a custom non-fail status (e.g. outcome=more_work) bypass the engine's signature cycle breaker entirely. The only protections are the LLM-side pass counter and max_restarts (default 50). For every non-fail loop_restart cycle, the prompting node MUST:
.ai/runs/$KILROY_RUN_ID/work_pass.txt)status=fail, failure_class=deterministic_agent_bug when the counter exceeds N (recommended: 5–10)This converts the stall into a fail that the signature cycle breaker can then accumulate and trip on. This is the only engine-enforced backstop for more_work-style loops.
Setting loop_restart_signature_limit:
The default is 3. For pipelines with a multi-pass repair loop (implement → verify → postmortem → implement), 3 may abort legitimate repair attempts. Recommended values:
graph [loop_restart_signature_limit=5, loop_restart_persist_keys="last_failing_acs", ...]expand_spec must include the full user input verbatim in a delimited block.DEFAULT_MODEL, etc.).skills/create-dotfile/hooks/validate-dot.sh) runs automatically
after every Write, Edit, or MultiEdit to a .dot file. It calls
kilroy attractor validate --graph and, if issues are found, signals Claude Code
via exit 2 + stderr so the feedback is injected into your context. If feedback
appears, repair the reported issues immediately and re-write the file. No manual
validate invocation is needed during ingest sessions.kilroy in PATH. The KILROY_CLAUDE_PATH environment variable
can override the binary location (full path or directory containing kilroy).digraph ... }), no markdown fences or sentinel text.shape=diamond nodes route outcomes only; do not attach execution prompts.failure_signature on any node whose failure_reason may vary between retries — not just verify stages. Merge nodes listing missing files, plan nodes, analysis nodes, and any node whose error prose contains counts or filenames all need a stable key. See Cycle Detection Contract for the full guidance.shape=box node to write status: retry. It is reserved by the attractor and triggers deterministic_failure_cycle_check, which downgrades to fail after N attempts. For iteration/revision loops, use a custom outcome: e.g. {"status": "needs_revision"} routed via condition="outcome=needs_revision" edge.review_consensus (or any review/gate node) to write status: fail for a rejection verdict. Write a custom outcome instead: e.g. {"status": "rejected"}. status: fail triggers failure processing and blocks goal_gate=true re-execution. Route rejection via condition="outcome=rejected".{"status":"success","outcome":"..."} in a status JSON — the outcome key is silently ignored by the runtime decoder; only status drives edge condition matching. Custom routing always uses the status field: {"status":"more_work"} matches condition="outcome=more_work", not {"status":"success","outcome":"more_work"}.if, node, edge, graph, digraph, subgraph, strict. These cause routing failures — the DOT parser interprets them as language keywords rather than node names.goal_gate=true node must declare its own retry_target pointing to the appropriate recovery node (typically postmortem). The graph-level retry_target is for transient node failures and is not an appropriate retry path for a failed review/gate consensus. Example: review_consensus [auto_status=true, goal_gate=true, retry_target="postmortem"].tool_command fields. Package manager invocations (npm, cargo, pip, go build), directory paths (server/, client/, backend/), and build tool flags MUST NOT appear directly in a verify node's tool_command. The only permitted form is tool_command="sh scripts/validate-{stage}.sh". Violation causes deterministic cycle failures that postmortem cannot route out of: the script is hardcoded at ingest time, the implementation loop makes different structural choices at runtime, and every retry re-runs the same broken command against the same wrong structure until the cycle limit aborts the run.sh scripts/validate-*.sh call MUST include a KILROY_VALIDATE_FAILURE fallback. When a validate script is missing, crashes before printing output, or returns non-zero without diagnostic text, postmortem receives no repair signal and cannot distinguish a missing script from a genuine build failure. The canonical tool_command form is:tool_command="sh scripts/validate-{stage}.sh || { echo 'KILROY_VALIDATE_FAILURE: validate-{stage}.sh missing or failed — postmortem must write scripts/validate-{stage}.sh'; exit 1; }"scripts/validate-{stage}.sh authored by implementation nodes, include a POSIX sh failure trap as the first executable line:#!/bin/sh
set -e
trap 'echo "KILROY_VALIDATE_FAILURE: validate-{stage}.sh crashed at line $LINENO — postmortem must repair scripts/validate-{stage}.sh"' EXIT
# ... stage-specific checks ...
trap - EXITKILROY_VALIDATE_FAILURE: prefix is the linter-enforced token. The validator rule validate_script_failure_contract fires a warning when sh scripts/validate-*.sh appears in tool_command without this token.verify_artifacts as optional when a DoD defines test evidence. If .ai/runs/$KILROY_RUN_ID/test-evidence/latest/manifest.json is missing, scenario IDs are incomplete, or required artifact types are absent, route to failure/postmortem with a stable failure_signature (for example missing_test_evidence) instead of proceeding.docs/strongdm/attractor/ingestor-spec.mddocs/strongdm/attractor/attractor-spec.mddocs/strongdm/attractor/coding-agent-loop-spec.mdskills/create-dotfile/reference_template.dotskills/create-dotfile/preferences.yamlskills/shared/model_fallbacks.yamlinternal/attractor/modeldb/pinned/openrouter_models.jsoninternal/attractor/modeldb/manual_models.yaml© danshapiro, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files in skills/create-dotfile of danshapiro/kilroy.
Open the folder on GitHubat commit b55fb0f
Create Dotfile next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Create Dotfile this skilldanshapiro/kilroy | 221 | — | ~6.4k | Automated safety check: Pass | MIT | |
| ObliteratusRedWoodOG/Hermes-Desktop | 177 | 6 repos | ~3.8k | Automated safety check: Pass | MIT | |
| Aisafetyhotwuyoscar/AISafetyHot-Hub | 175 | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| Lemonade Router Builderamd/skills | 395 | — | ~4k | Automated safety check: Pass | MIT | |
| Persona Designkangarooking/system-prompt-skills | 205 | 1 repos | ~956 | Automated safety check: Pass | MIT | |
| Execution Guardrailsmrtooher/fable-mode | 870 | — | ~1k | Automated safety check: Pass | None |
RedWoodOG/Hermes-Desktop
Remove refusal behaviors from open-weight LLMs using OBLITERATUS — mechanistic interpretability techniques (diff-in-means, SVD, whitened SVD, LEACE, SAE decomposition, etc.) to excise guardrails…
wuyoscar/AISafetyHot-Hub
Read AI Safety HOT daily digests, search recent AI safety research and incidents, and follow current hot topics.
amd/skills
Turns a natural-language description of routing intent into a valid Lemonade collection.router policy JSON.
kangarooking/system-prompt-skills
当需要为 AI 产品定义核心身份、角色声明和能力边界时调用此 skill。典型场景包括:设计新 AI 产品的 system prompt 首段、为不同场景创建差异化角色(如教学助手 vs 编程代理)、重新定义 AI 与用户的关系框架。
mrtooher/fable-mode
Always-on operational guardrails, model-independent. An agent skill from mrtooher/fable-mode.
open-bias/open-bias
Guide for writing eval conversation JSONs and running them through policy engines
danshapiro/kilroy
A skill your agent uses when converting a spec, requirements document, or goal statement into a Definition of Done with acceptance criteria and integration test scenarios
danshapiro/kilroy
A skill your agent uses when authoring or repairing Kilroy run config YAML/JSON files, including DOT-to-provider backend alignment and runtime policy defaults.
danshapiro/kilroy
A skill your agent uses when preparing a Kilroy release — writing release notes, tagging, and publishing via goreleaser on GitHub.
danshapiro/kilroy
To diagnose active, stuck, or failed Kilroy Attractor runs, inspect run artifacts (manifest.json, live.json, checkpoint.json, final.json, progress.ndjson), resolve run IDs/log roots, identify…
danshapiro/kilroy
A skill your agent uses when bootstrapping a new project repository for Kilroy Attractor from a clean directory using existing spec, DoD, graph, and run config artifacts.
danshapiro/kilroy
Operate Kilroy Attractor pipelines end-to-end: ingest English requirements into DOT graphs, validate graph semantics, run and resume pipelines with run config files, configure provider backends…
Categories
A skill your agent uses when authoring or repairing Kilroy Attractor DOT graphs from requirements, with template-first topology, routing guardrails, and validator-clean output. Create Dotfile is an agent skill from danshapiro/kilroy. Use when authoring or repairing Kilroy Attractor DOT graphs from requirements, with template-first topology, routing guardrails, and validator-clean output.
Create Dotfile fits situations like: repairing Kilroy Attractor DOT graphs from requirements; with template-first topology; routing guardrails; validator-clean output.
Run `npx skills add danshapiro/kilroy --skill create-dotfile -a claude-code`. Or copy the skill folder (skills/create-dotfile in danshapiro/kilroy) into .claude/skills/create-dotfile in your project. Claude Code loads it when a task matches its description.
Run `npx skills add danshapiro/kilroy --skill create-dotfile -a codex`. Or copy the skill folder (skills/create-dotfile in danshapiro/kilroy) into .agents/skills/create-dotfile in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add danshapiro/kilroy --skill create-dotfile -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-dotfile, .gemini/skills/create-dotfile, .github/skills/create-dotfile and .opencode/skills/create-dotfile in your project.
Going by SKILL.md and its folder, Create Dotfile needs a shell for the scripts in its folder and the command-line tools its instructions call (sh, git, playwright, npm and go). Our summary lists: A Bash shell.
SKILL.md contains no URLs. Its commands use git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Create Dotfile is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.4k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Create Dotfile: Obliteratus (RedWoodOG/Hermes-Desktop, 177 stars), Aisafetyhot (wuyoscar/AISafetyHot-Hub, 175 stars), Lemonade Router Builder (amd/skills, 395 stars) and Persona Design (kangarooking/system-prompt-skills, 205 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
danshapiro (a GitHub user) maintains it in danshapiro/kilroy, which has 221 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on April 27, 2026.
Source: danshapiro/kilroy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.