diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fe0584e..88b336b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,12 +11,12 @@ Thanks for helping raise dead codebases! π§ Issues, ideas, and PRs are all wel ## Repo layout -This repo **is** the plugin marketplace. It ships two plugins β the **core** plugin and an optional **sibling**: +This repo **is** the plugin marketplace. It ships three plugins β the **core** plugin and two optional **siblings**: ``` plugins/lazarus/ # core plugin βββ .claude-plugin/plugin.json # manifest (NO version field β git SHA is the version) -βββ skills/ # discover, repair, audit (SKILL.md each) +βββ skills/ # discover, repair, audit, audit-repair, presentation (SKILL.md each) βββ agents/repo-explorer.md # read-only Haiku exploration subagent βββ hooks/hooks.json # wires the guard as a PreToolUse hook (auto-loaded) βββ scripts/check-destructive.sh # the destructive-command guard @@ -24,9 +24,13 @@ plugins/lazarus/ # core plugin plugins/lazarus-github/ # optional sibling β files an audit's Top 10 as GitHub Issues βββ .claude-plugin/plugin.json βββ skills/issues/SKILL.md + +plugins/lazarus-forge/ # optional sibling β pre-build design review for new skills/plugins +βββ .claude-plugin/plugin.json +βββ skills/design-review/SKILL.md ``` -**Sibling-plugin pattern.** Anything outward-facing (filing GitHub Issues, posting to Slack, Linear/Jira) ships as a separate opt-in plugin in this same marketplace β never bundled into core β so the core install stays zero-config and a `gh`/API failure can't reach anyone who didn't opt in. `lazarus-github` is the first sibling. +**Sibling-plugin pattern.** Anything outward-facing (filing GitHub Issues, posting to Slack, Linear/Jira) ships as a separate opt-in plugin in this same marketplace β never bundled into core β so the core install stays zero-config and a `gh`/API failure can't reach anyone who didn't opt in. `lazarus-github` was the first sibling; `lazarus-forge` the second. ## Dev loop diff --git a/MAINTAINING.md b/MAINTAINING.md index 7b874a7..996c37f 100644 --- a/MAINTAINING.md +++ b/MAINTAINING.md @@ -4,16 +4,19 @@ This repository **is** the marketplace. ``` lazarus/ β this directory IS the GitHub repo root -βββ .claude-plugin/marketplace.json β lists BOTH plugins; "name" = cognitivecode (the @handle) +βββ .claude-plugin/marketplace.json β lists ALL plugins; "name" = cognitivecode (the @handle) βββ plugins/lazarus/ β core β βββ .claude-plugin/plugin.json β plugin manifest (no version β git SHA is the version) -β βββ skills/{discover,repair,audit}/SKILL.md +β βββ skills/{discover,repair,audit,audit-repair,presentation}/SKILL.md β βββ agents/repo-explorer.md β βββ hooks/hooks.json β auto-loaded; do NOT also list it in plugin.json β βββ scripts/check-destructive.sh β the guard (must stay executable / git mode 100755) -βββ plugins/lazarus-github/ β optional companion (audit's Β§11 β GitHub Issues) +βββ plugins/lazarus-github/ β optional companion (audit's Β§11 β GitHub Issues) +β βββ .claude-plugin/plugin.json +β βββ skills/issues/SKILL.md +βββ plugins/lazarus-forge/ β optional companion (pre-build design review) βββ .claude-plugin/plugin.json - βββ skills/issues/SKILL.md + βββ skills/design-review/SKILL.md ``` **Pushing updates.** `plugin.json` deliberately omits `version`, so Claude Code uses the git commit SHA β every push is a new version and `claude plugin update` pulls it, no number to bump. (If you'd rather have named releases, add `"version"` and bump it on every change β but if you set it and forget to bump, updates silently stop.) diff --git a/README.md b/README.md index 990d0de..09d5c17 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,13 @@
Point Claude at a repository and let Lazarus help make it: Alive again, documented, and audited β behind a guard that **blocks** destructive commands before they ever run.
+
@@ -16,26 +19,28 @@ Point Claude at a repository and let Lazarus help make it: Alive again, document
---
-**Lazarus** is a Claude Code plugin for working on a codebase with an AI agent you can actually trust. It does **two jobs** on *any* repo β yours, one you inherited, an open-source project, healthy or broken:
+**Lazarus** is a Claude Code plugin for working on a codebase with an AI agent you can actually trust. It does **three jobs** on *any* repo β yours, one you inherited, an open-source project, healthy or broken:
- π§ **Make it run** (`discover` β `repair`) β point it at code that won't start, or that you simply don't know yet. It investigates, proposes a plan with a concrete "done" checklist you approve, then works through the blockers until the app boots β and writes down what actually worked so the next person (or the next you) doesn't start from zero.
- π§ **Assess it β and, if you choose, fix it** (`audit` β `audit-repair`) β get a principal-engineer read: what's risky, what to fix first, and whether to maintain, refactor, or rewrite. A report you act on, hand to a client β or have executed finding-by-finding, each behind your approval.
+- π
**Make it presentable** (`presentation`) β a DevRel-grade, read-only review of everything a stranger sees *before* the source: README, LICENSE, CONTRIBUTING, security policy, templates, markdown accessibility. Every finding cites a real standard (GitHub's community profile, CommonMark, WCAG) β never taste β and lands in a `PRESENTATION_AUDIT.md` you act on.
-Both journeys run behind a guard that blocks destructive commands before they ever run β and in both, **nothing changes until you approve a plan.** It'll resurrect a dead repo that won't even start (the namesake), but it's just as useful on healthy code you want made runnable, understood, or assessed.
+Everything runs behind a guard that blocks destructive commands before they ever run β and **nothing changes until you approve a plan.** It'll resurrect a dead repo that won't even start (the namesake), but it's just as useful on healthy code you want made runnable, understood, assessed, or ready to show the world.
-## π§ Two journeys, four commands
+## π§ Three goals, five commands
-Lazarus looks like four skills, but you only ever choose between **two journeys**. Each is *plan β you approve β execute* β the four commands are just the steps:
+Lazarus looks like five skills, but you only ever choose a **goal**. Each flows *plan β you approve β execute* β the commands are just the steps:
| You want⦠| The journey | How it flows |
|---|---|---|
| **It running** β *"it won't start"* Β· *"I'm lost in this repo"* Β· *"I need to change it safely"* | π **`discover`** β π§ *you approve* β π§ **`repair`** | `discover` investigates read-only and writes a plan with a runnable "done" checklist; you approve it; `repair` works the blockers until each one passes β recording what actually worked in `CLAUDE.md`. |
| **It assessed β and, if you choose, fixed** β *"what shape is this in?"* Β· *"maintain, refactor, or rewrite?"* Β· *"now go fix what the audit found"* | π§ **`audit`** β π§ *your call* β π οΈ **`audit-repair`** | `audit` writes a read-only, 12-section principal-engineer report. Stop there β it's a deliverable you can hand to a client β or ratify its Top 10 and `audit-repair` executes them **one at a time**, verifying each against its acceptance check. |
+| **It presentable** β *"polish my README"* Β· *"is this repo ready to go public?"* Β· *"set up CONTRIBUTING / templates"* | π
**`presentation`** β π§ *you approve* β π `PRESENTATION_AUDIT.md` | Read-only, project-type-aware audit of your README, community-health files, and markdown accessibility β every finding cites a named standard, with a waiver file so it never nags you about deliberate choices. Its apply phase (`presentation-repair`) is the next tool coming, exactly as `audit-repair` followed `audit`. |
-And the whole time β both journeys, every step β the π‘οΈ **guard** blocks `rm -rf /`, force-push, `DROP TABLE`, and ~25 more destructive commands before they ever execute.
+And the whole time β every journey, every step β the π‘οΈ **guard** blocks `rm -rf /`, force-push, `DROP TABLE`, and ~25 more destructive commands before they ever execute.
> [!NOTE]
-> **Don't memorize the order β start anywhere.** The skills route you: type `/lazarus:repair` with no plan and it stops and offers to run `discover` first; finish `discover` and it names the next command; `audit-repair` refuses to run until an `audit` is ratified. The two journeys stay independent β neither requires the other, and `audit` is still perfectly useful as a report you never act on.
+> **Don't memorize the order β start anywhere.** The skills route you: type `/lazarus:repair` with no plan and it stops and offers to run `discover` first; finish `discover` and it names the next command; `audit-repair` refuses to run until an `audit` is ratified. The journeys stay independent β none requires another, and `audit` or `presentation` are perfectly useful as reports you never act on.
**New here?** The three commands below get you running in under a minute β no config, no keys. **Want the internals?** The collapsible **Deep dive** sections further down open up the guard's design, the anti-hallucination model, and the research behind it. For the whole picture in one read, see the [complete project overview](docs/OVERVIEW.md).
@@ -74,9 +79,9 @@ A scary repo to a running app β discover, you approve, repair, and the guard s
/lazarus:discover (or the guard) does nothing. Why?/reload-plugins. Installing registers the plugin; its skills, hooks, and guard only go live after you run /reload-plugins (or restart claude) in that session. Run it once and the /lazarus:discover, /lazarus:repair, /lazarus:audit, and /lazarus:audit-repair commands appear.
+You almost certainly skipped /reload-plugins. Installing registers the plugin; its skills, hooks, and guard only go live after you run /reload-plugins (or restart claude) in that session. Run it once and the /lazarus:discover, /lazarus:repair, /lazarus:audit, /lazarus:audit-repair, and /lazarus:presentation commands appear.
scripts/check-destructive.sh
How do updates work?
-Two steps. 1) Run /plugin update lazarus@cognitivecode (and the same for lazarus-github / lazarus-forge if you installed them). 2) Run /reload-plugins (or restart claude) β same rule as installing: the updated skills, hooks, and guard don't go live in your session until you reload. The plugin is git-SHA-versioned, so /plugin update always pulls the latest main β there's no version number you have to match. Tagged releases like v0.5.0 are human-readable changelog markers (see Releases), not something you pin to. Check what you're on with /plugin list.
+Two steps. 1) Run /plugin update lazarus@cognitivecode (and the same for lazarus-github / lazarus-forge if you installed them). 2) Run /reload-plugins (or restart claude) β same rule as installing: the updated skills, hooks, and guard don't go live in your session until you reload. The plugin is git-SHA-versioned, so /plugin update always pulls the latest main β there's no version number you have to match. Tagged releases like v0.5.0 are human-readable changelog markers (see Releases), not something you pin to. Check what you're on with /plugin list.