Install

Paste this into your coding agent:

Install my-llm-kit from https://github.com/badmuriss/my-llm-kit.

1. Detect native Windows, macOS, or Linux. Do not use WSL for a native Windows install.
2. Clone the repo, or preserve local changes if it already exists.
3. Read AGENTS.md and README.md.
4. Preview with .\setup.ps1 -DryRun on Windows or ./setup.sh --dry-run on macOS/Linux.
5. Fix safe prerequisites. Do not delete user-owned configuration.
6. Run the matching installer, then run it again to verify idempotence.
7. Confirm that spec, impl, grill-me, and spec-council are available to the installed agents.
8. Report changes, skips, backups, failures, and anything left unverified.

Manual fallback for Linux and macOS:

git clone https://github.com/badmuriss/my-llm-kit
cd my-llm-kit
./setup.sh --dry-run
./setup.sh

Manual fallback for native Windows PowerShell:

git clone https://github.com/badmuriss/my-llm-kit
Set-Location my-llm-kit
Set-ExecutionPolicy -Scope Process Bypass
.\setup.ps1 -DryRun
.\setup.ps1

How the harness works

The harness separates decisions from code. It researches uncertain facts, writes an explicit plan, implements approved tasks, and keeps evidence for the result.

research, when facts are uncertain
        ↓
$spec: proposal.md + design.md + tasks.md
        ↓
$impl: code + checks + evidence grades
Skill Job Output
research Routes each query to the narrowest provider, adjudicates sources per claim, and optionally runs one bounded council. An audited finding under research/.
spec Resolves decisions and writes an executable plan. A --council flag adds one bounded review. proposal.md, design.md, tasks.md, and an optional council report.
impl Executes localized work directly, delegates when isolation or parallelism pays, and grades recorded checks. Code, checks, evidence grades, and resumable state.
writing Keeps docs, commits, PR descriptions, and errors short and concrete. A clear record of what changed, why, and how it was checked.

Start a change:

Use $spec to plan <change>. Resolve the important decisions with me and create the OpenSpec files. Do not implement yet.

Implement the approved plan:

Use $impl <slug> to implement the OpenSpec change. Execute every task check and report its evidence grade.

Claude Code also has /spec and /impl wrappers for the same workflow. Council review is opt-in with $spec --council <change>. It challenges the completed draft once and remains advisory; executable checks decide acceptance.

What impl records

Every run stores crash-safe state under openspec/impl-state/. A resumed run reports interrupted tasks, current diffs, and active processes before work continues.

Each OpenSpec task carries one Check: command. The state records its result, exit code, duration, and attempt count. Check: missing validation evidence remains unobserved and cannot become pass.

Validation is proportional to risk. The harness reuses the smallest relevant check and does not add tests merely to pin constants, defaults, toggles, deletions, trivial passthroughs or guarantees already enforced by the type system. MVP changes prefer a clean rewrite over compatibility layers unless the repository shows an active external contract.

Frontend tasks pair a reasoned Visual-Scope: with Visual: contracts for each changed route and state. General responsive UI covers desktop, notebook, tablet and mobile; platform-specific UI covers only its declared targets. impl requires PNG screenshots inspected by a vision-capable tool and a validated manifest before the task can pass. A final guard detects frontend file changes and blocks a successful run when the plan omitted visual expectations entirely. The frontend-visual-validation skill defines the capture and review workflow.

The loop stops when no verified, unchecked, in-scope task remains.

After normal completion, learning.py can snapshot those observed checks and compile recurring support or opposition into openspec/impl-learning/DRAFT_CANDIDATES.md. This shadow-mode file is never loaded by impl, never creates a rule or skill, and never blocks completion. Activation requires a reviewed change or a validated executable gate; paired memory_off and memory_on states can be compared without an automatic verdict. See the trajectory-learning audit.

Codex model routing

impl keeps one localized task in the current context. It uses Luna for independent mechanical work, Terra for ambiguous integration, and Sol for architecture, security, or unresolved high-risk failures. Effort rises after observed failure or increased risk; xhigh is not a default lane.

What's included

Core skills in this repo

Skill Purpose
research Source-first research with provider provenance, claim adjudication, and optional council review.
ingest Converts received documents and repos before analysis.
writing Technical writing rules based on Zinsser.
spec Architecture-first OpenSpec planning.
impl Evidence-graded implementation with executable task checks.
grill-me Decision interview used by spec.
grill-with-docs Decision interview that also updates context and ADRs.
scrapingdog Paid public-web data provider. Requires SCRAPINGDOG_API_KEY.
readme-pass Concise, scannable README with agent-first installation.

Skills linked from their own repos

Skill Purpose Repo
unslop Writes, edits, detects, and scores prose, including Brazilian Portuguese. badmuriss/unslop
incredibly-pretty-websites Research-driven frontend design system. badmuriss/incredibly-pretty-websites
site-audit UX, SEO, AEO, GEO, and Core Web Vitals audit for a running site. badmuriss/site-audit
spec-council Bounded multi-perspective review for OpenSpec drafts. badmuriss/spec-council

Community design and diagram skills

Skill Purpose Repo
refero-design Leads UI research through Refero styles, screens, and flows, then produces a reference lock and decision ledger. $incredibly-pretty-websites consumes that direction for implementation craft and frontend constraints. referodesign/refero_skill
drawio-skill Creates editable architecture, flow, UML, ER, and system diagrams, validates their structure, exports common formats, and requires visual review. Agents365-ai/drawio-skill

Web fallback

Skill Purpose Source
firecrawl suite Search, scrape, crawl, and map through the Firecrawl CLI. firecrawl/cli

Web MCP

The setup installs and registers scrapingdog-mcp with Claude Code and Codex. Until the YouTube Search fix ships in an npm release, installation is pinned to the immutable tarball for the tested fork commit. It performs an MCP handshake and checks the tool catalog without consuming API credits. OpenCode receives the equivalent JSON to add manually.

The server reads SCRAPINGDOG_API_KEY from the agent process at runtime. The installer never writes the key to host configuration. Export the variable before starting the agent.

Credentials are optional during setup. A skill stays dormant until its key or login is available.

Optional plugins

Claude Code and Codex receive these plugins when the host is installed:

Plugin Purpose Marketplace
cloudflare Workers, Pages, storage, Durable Objects, and Wrangler workflows. cloudflare/skills
last30days Recent community research across Reddit, HN, X, GitHub, and arXiv. mvanhorn/last30days-skill

Supported agents

Skills live once in ~/.agents/skills/. Hosts that need their own directory receive links to the same files. Unix uses symlinks; Windows uses directory junctions.

Host Skill setup Plugins MCP dcg hooks Pipelock
Claude Code linked to ~/.claude/skills/ yes yes yes action hooks
Codex CLI linked to ~/.codex/skills/ yes yes yes MCP proxy
Gemini CLI reads shared root no marketplace manual yes not configured
GitHub Copilot CLI reads shared root no marketplace manual yes not configured
OpenCode reads shared root no marketplace JSON printed not supported not configured

The installer only configures hosts it finds. It reports real directories instead of overwriting them.

AGENTS.md also has one source. Unix links host-specific instruction files to it. Windows installs managed copies because file symlinks may require extra privileges.

To install one public skill without the full setup:

npx skills add badmuriss/site-audit --global --agent '*' -y

Setup details

setup.sh handles Linux and macOS. setup.ps1 handles native Windows. Both read install-manifest.json, support a preview mode, preserve user-owned configuration, and can run more than once.

The installers:

  1. Detect installed agent hosts and required tools.
  2. Install the shared skills and link them into each host.
  3. Clone the owned and community skill repos when missing, including skills stored in a repository subdirectory.
  4. Install Firecrawl, optional plugins, and the paper-search and ScrapingDog MCP servers where supported.
  5. Verify the ScrapingDog MCP handshake and tool catalog without API credits.
  6. Verify the paper-search executable, version, and one real arXiv query. A failure declares the web fallback.
  7. Install the shared AGENTS.md, with backups for different existing files.
  8. Install and verify dcg, the destructive-command guard.
  9. Install agent-resource-guard on Linux. Windows records an explicit skip.
  10. Install the pinned Pipelock release after verifying its checksum, then configure detected Codex and Claude hosts.

Safety tools

dcg blocks destructive shell commands before they run. This repo installs a shared configuration from dcg/.

agent-resource-guard allows up to 20 active agent sessions by default and can still deny work earlier for memory or heavy-command pressure. It also cleans up tagged child processes after their owner exits. Manual processes and persistent terminal shells are excluded.

Pipelock scans agent actions at supported host boundaries. The Codex installer wraps existing MCP servers with pipelock mcp proxy. The Claude installer adds its action hooks. Run setup again after adding a Codex MCP server so Pipelock can wrap the new entry.

This integration does not intercept every process on the machine. A child process that opens its own connection can bypass an application proxy. Use Pipelock sandbox or operating-system containment when all outbound traffic must be mediated.

Reduced Claude Code install

Claude Code users can install only the native commands, worker profiles, and their required skills:

./install.sh
./install.sh --link

From a bare shell:

curl -fsSL https://raw.githubusercontent.com/badmuriss/my-llm-kit/main/install.sh | bash

The reduced install includes $trim-code-comments for manual comment cleanup and an independent, read-only maintainability review that $impl runs after code changes.

Not included

The setup skips private, client-specific, account-bound, and narrow single-workflow skills. Install those separately when a project needs them.

Heavy converters such as MinerU and docling are opt-in.

Credits

Community projects keep their own licenses.

License

MIT. See LICENSE.