@codyswann/lisa 2.351.0 → 2.352.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh +1 -1
- package/all/copy-overwrite/scripts/lisa-hooks/block-shell-json-parsing.sh +1 -1
- package/all/create-only/.agents/rules/README.md +45 -0
- package/dist/cli/doctor-lisa-owned-artifacts.d.ts +18 -0
- package/dist/cli/doctor-lisa-owned-artifacts.d.ts.map +1 -0
- package/dist/cli/doctor-lisa-owned-artifacts.js +129 -0
- package/dist/cli/doctor-lisa-owned-artifacts.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +2 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/codex/scripts/_extract-edit-paths.sh +1 -1
- package/dist/codex/scripts/format-on-edit.sh +1 -1
- package/dist/codex/scripts/lint-on-edit.sh +1 -1
- package/dist/codex/scripts/rubocop-on-edit.sh +1 -1
- package/dist/codex/scripts/sg-scan-on-edit.sh +1 -1
- package/dist/configs/eslint/cdk.js +2 -2
- package/dist/configs/eslint/cdk.js.map +1 -1
- package/dist/configs/eslint/nestjs.js +2 -2
- package/dist/configs/eslint/nestjs.js.map +1 -1
- package/dist/configs/eslint/typescript.js +2 -2
- package/dist/configs/eslint/typescript.js.map +1 -1
- package/dist/core/host-rules-pointer.d.ts +33 -0
- package/dist/core/host-rules-pointer.d.ts.map +1 -0
- package/dist/core/host-rules-pointer.js +115 -0
- package/dist/core/host-rules-pointer.js.map +1 -0
- package/dist/core/instruction-files-migration.d.ts +3 -2
- package/dist/core/instruction-files-migration.d.ts.map +1 -1
- package/dist/core/instruction-files-migration.js +62 -64
- package/dist/core/instruction-files-migration.js.map +1 -1
- package/dist/core/learnings.d.ts +1 -1
- package/dist/core/learnings.d.ts.map +1 -1
- package/dist/core/learnings.js +1 -1
- package/dist/core/learnings.js.map +1 -1
- package/dist/core/lisa-owned-templates.d.ts +34 -0
- package/dist/core/lisa-owned-templates.d.ts.map +1 -0
- package/dist/core/lisa-owned-templates.js +41 -0
- package/dist/core/lisa-owned-templates.js.map +1 -0
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +5 -1
- package/dist/core/lisa.js.map +1 -1
- package/dist/core/project-config.d.ts +39 -9
- package/dist/core/project-config.d.ts.map +1 -1
- package/dist/core/project-config.js +37 -10
- package/dist/core/project-config.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +34 -20
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-templates/lisa-block-instruction-file-edits.ts +1 -1
- package/dist/strategies/copy-overwrite.d.ts +13 -6
- package/dist/strategies/copy-overwrite.d.ts.map +1 -1
- package/dist/strategies/copy-overwrite.js +16 -7
- package/dist/strategies/copy-overwrite.js.map +1 -1
- package/dist/sync/registry.d.ts.map +1 -1
- package/dist/sync/registry.js +0 -6
- package/dist/sync/registry.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-debrief/SKILL.md +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-debrief-apply/SKILL.md +3 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-doctor/SKILL.md +4 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-improve-harness/SKILL.md +2 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-learnings-audit/SKILL.md +6 -3
- package/plugins/lisa/agents/learnings-synthesizer.md +1 -1
- package/plugins/lisa/agents/skill-evaluator.md +1 -1
- package/plugins/lisa/hooks/block-instruction-file-edits.sh +1 -1
- package/plugins/lisa/hooks/block-shell-json-parsing.sh +1 -1
- package/plugins/lisa/rules/eager/config-resolution.md +6 -3
- package/plugins/lisa/rules/eager/project-learnings.md +3 -2
- package/plugins/lisa/rules/reference/config-resolution.md +10 -2
- package/plugins/lisa/rules/reference/intent-routing.md +1 -1
- package/plugins/lisa/rules/reference/project-learnings.md +6 -4
- package/plugins/lisa/rules/reference/promotion-contract.md +2 -1
- package/plugins/lisa/skills/lisa-debrief/SKILL.md +1 -1
- package/plugins/lisa/skills/lisa-debrief-apply/SKILL.md +3 -3
- package/plugins/lisa/skills/lisa-doctor/SKILL.md +4 -1
- package/plugins/lisa/skills/lisa-improve-harness/SKILL.md +2 -2
- package/plugins/lisa/skills/lisa-learnings-audit/SKILL.md +6 -3
- package/plugins/lisa-agy/agents/learnings-synthesizer.md +1 -1
- package/plugins/lisa-agy/agents/skill-evaluator.md +1 -1
- package/plugins/lisa-agy/hooks/block-instruction-file-edits.sh +1 -1
- package/plugins/lisa-agy/hooks/block-shell-json-parsing.sh +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-debrief/SKILL.md +1 -1
- package/plugins/lisa-agy/skills/lisa-debrief-apply/SKILL.md +3 -3
- package/plugins/lisa-agy/skills/lisa-doctor/SKILL.md +4 -1
- package/plugins/lisa-agy/skills/lisa-improve-harness/SKILL.md +2 -2
- package/plugins/lisa-agy/skills/lisa-learnings-audit/SKILL.md +6 -3
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/agents/learnings-synthesizer.agent.md +1 -1
- package/plugins/lisa-copilot/agents/skill-evaluator.agent.md +1 -1
- package/plugins/lisa-copilot/hooks/block-instruction-file-edits.sh +1 -1
- package/plugins/lisa-copilot/hooks/block-shell-json-parsing.sh +1 -1
- package/plugins/lisa-copilot/rules/eager/config-resolution.md +6 -3
- package/plugins/lisa-copilot/rules/eager/project-learnings.md +3 -2
- package/plugins/lisa-copilot/rules/reference/config-resolution.md +10 -2
- package/plugins/lisa-copilot/rules/reference/intent-routing.md +1 -1
- package/plugins/lisa-copilot/rules/reference/project-learnings.md +6 -4
- package/plugins/lisa-copilot/rules/reference/promotion-contract.md +2 -1
- package/plugins/lisa-copilot/skills/lisa-debrief/SKILL.md +1 -1
- package/plugins/lisa-copilot/skills/lisa-debrief-apply/SKILL.md +3 -3
- package/plugins/lisa-copilot/skills/lisa-doctor/SKILL.md +4 -1
- package/plugins/lisa-copilot/skills/lisa-improve-harness/SKILL.md +2 -2
- package/plugins/lisa-copilot/skills/lisa-learnings-audit/SKILL.md +6 -3
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/agents/learnings-synthesizer.md +1 -1
- package/plugins/lisa-cursor/agents/skill-evaluator.md +1 -1
- package/plugins/lisa-cursor/hooks/block-instruction-file-edits.sh +1 -1
- package/plugins/lisa-cursor/hooks/block-shell-json-parsing.sh +1 -1
- package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +10 -2
- package/plugins/lisa-cursor/rules/config-resolution.mdc +6 -3
- package/plugins/lisa-cursor/rules/intent-routing-reference.mdc +1 -1
- package/plugins/lisa-cursor/rules/project-learnings-reference.mdc +6 -4
- package/plugins/lisa-cursor/rules/project-learnings.mdc +3 -2
- package/plugins/lisa-cursor/rules/promotion-contract-reference.mdc +2 -1
- package/plugins/lisa-cursor/skills/lisa-debrief/SKILL.md +1 -1
- package/plugins/lisa-cursor/skills/lisa-debrief-apply/SKILL.md +3 -3
- package/plugins/lisa-cursor/skills/lisa-doctor/SKILL.md +4 -1
- package/plugins/lisa-cursor/skills/lisa-improve-harness/SKILL.md +2 -2
- package/plugins/lisa-cursor/skills/lisa-learnings-audit/SKILL.md +6 -3
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/hooks/block-suppress-directives.sh +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/hooks/block-suppress-directives.sh +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/hooks/block-suppress-directives.sh +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/agents/learnings-synthesizer.md +1 -1
- package/plugins/src/base/agents/skill-evaluator.md +1 -1
- package/plugins/src/base/hooks/block-instruction-file-edits.sh +1 -1
- package/plugins/src/base/hooks/block-shell-json-parsing.sh +1 -1
- package/plugins/src/base/rules/eager/config-resolution.md +6 -3
- package/plugins/src/base/rules/eager/project-learnings.md +3 -2
- package/plugins/src/base/rules/reference/config-resolution.md +10 -2
- package/plugins/src/base/rules/reference/intent-routing.md +1 -1
- package/plugins/src/base/rules/reference/project-learnings.md +6 -4
- package/plugins/src/base/rules/reference/promotion-contract.md +2 -1
- package/plugins/src/base/skills/lisa-debrief/SKILL.md +1 -1
- package/plugins/src/base/skills/lisa-debrief-apply/SKILL.md +3 -3
- package/plugins/src/base/skills/lisa-doctor/SKILL.md +4 -1
- package/plugins/src/base/skills/lisa-improve-harness/SKILL.md +2 -2
- package/plugins/src/base/skills/lisa-learnings-audit/SKILL.md +6 -3
- package/plugins/src/typescript/hooks/block-suppress-directives.sh +1 -1
- package/all/create-only/.claude/rules/PROJECT_RULES.md +0 -17
|
@@ -223,7 +223,7 @@ Sequence:
|
|
|
223
223
|
- **PRD defect** — the ticket faithfully captured the PRD, but the PRD itself was wrong, ambiguous, or missing the failing case
|
|
224
224
|
- **Missing tool access** — an agent lacked a tool, credential, environment, or permission the work required
|
|
225
225
|
|
|
226
|
-
The three knowledge categories (recurring gotcha, process friction, convention drift) persist to the committed learnings ledger through the executable contract — never to machine-local memory,
|
|
226
|
+
The three knowledge categories (recurring gotcha, process friction, convention drift) persist to the committed learnings ledger through the executable contract — never to machine-local memory, host rules (`.agents/rules/`), or `AGENTS.md`.
|
|
227
227
|
4. **Produce the human-triage document** — a markdown file with one row per candidate learning showing: category, summary, evidence (links to the source ticket comment / PR comment / commit), recommended persistence destination, and a checkbox-style disposition field the human will mark (Accept / Reject / Defer). Surface step-1 anomalies (work items missing PRs, etc.) in a separate section. The document is exhaustive — it lists every candidate, even ones the synthesizer rates low confidence — because the human, not the agent, decides what is worth keeping.
|
|
228
228
|
5. **Record Debrief usage on the triage document** — invoke `lisa-usage-accounting` against the generated markdown artifact so the document carries its own direct `debrief` usage entry in the canonical `## Lisa Usage` section. If runtime usage is unavailable, write the entry with `source: unavailable` and nullable token/cost fields rather than skipping it.
|
|
229
229
|
6. **Stop and hand the document to the human.** Debrief does NOT persist accepted learnings itself. The human triages, marks dispositions, and runs the **`/lisa:debrief:apply`** command (skill: `debrief-apply`) to route the accepted items to their destinations.
|
|
@@ -34,7 +34,7 @@ Each persisted entry has seven fields:
|
|
|
34
34
|
|
|
35
35
|
- The **learner agent** at capture time appends or consolidates new entries
|
|
36
36
|
(`persistLearningEntry` / `persistConsolidatedLearning`) from task learnings.
|
|
37
|
-
It is capture-only: it never appends to
|
|
37
|
+
It is capture-only: it never appends to host rules, creates skills, or
|
|
38
38
|
files upstream issues — promotion is the gardener's ticket-gated job.
|
|
39
39
|
- **`lisa-debrief-apply`** routes accepted debrief findings in the three
|
|
40
40
|
knowledge categories — recurring gotcha, process friction, convention drift —
|
|
@@ -42,7 +42,8 @@ Each persisted entry has seven fields:
|
|
|
42
42
|
`persistConsolidatedLearning`, with consolidation-at-write), provenance drawn
|
|
43
43
|
from the triage row's evidence links and a `high` starting confidence because
|
|
44
44
|
a human Accept is corroboration. It no longer writes to machine-local memory,
|
|
45
|
-
|
|
45
|
+
the host-rules directory `.agents/rules/` (or a surviving legacy
|
|
46
|
+
`PROJECT_RULES.md`), or `AGENTS.md` (the human-authored source of truth, of
|
|
46
47
|
which `CLAUDE.md` is only a `@AGENTS.md` pointer) for these categories.
|
|
47
48
|
- The **build-intake flows** advance `last_confirmed` at claim time
|
|
48
49
|
(`confirmLearningEntry`, below).
|
|
@@ -77,9 +78,10 @@ warning, apply no entry, and do not block unrelated work.
|
|
|
77
78
|
Precedence:
|
|
78
79
|
|
|
79
80
|
1. System, developer, user, and repo instructions still outrank learnings.
|
|
80
|
-
2. Committed
|
|
81
|
+
2. Committed host rules (`.agents/rules/`) remain durable human-authored
|
|
82
|
+
guidance.
|
|
81
83
|
3. Project learnings add recent operational knowledge, but never rewrite or
|
|
82
|
-
append to
|
|
84
|
+
append to host rules.
|
|
83
85
|
|
|
84
86
|
## Task telemetry (MLD) is not context
|
|
85
87
|
|
|
@@ -121,6 +121,7 @@ and lets reviewers diff against a single source of truth.
|
|
|
121
121
|
- **The gardener** (`lisa-learnings-audit`): embeds the AC template above into
|
|
122
122
|
EXECUTABLE-CONTROL promotion tickets and applies the eager-tier admission
|
|
123
123
|
policy when auditing.
|
|
124
|
-
- **
|
|
124
|
+
- **Host-rules owners** (`.agents/rules/`, plus any surviving legacy
|
|
125
|
+
`PROJECT_RULES.md`): that surface is human-authored only; machine
|
|
125
126
|
writes go to the learnings ledger, and promotions out of it arrive as
|
|
126
127
|
gardener tickets governed by this contract.
|
|
@@ -72,7 +72,7 @@ A markdown triage document at `./debrief/<initiative-slug>-<YYYY-MM-DD>.md` (or
|
|
|
72
72
|
- `Summary` — one sentence
|
|
73
73
|
- `Category`
|
|
74
74
|
- `Evidence` — links to the source ticket comment / PR comment / commit / test file (multiple allowed)
|
|
75
|
-
- `Recommended persistence destination` — the agent's best guess for where this should land if accepted (e.g., "Edge Case Brainstorm checklist → Navigation & URL state", "learnings ledger via the executable contract", "new tooling-gap ticket", "upstream Lisa issue"). Never name machine-local auto-memory,
|
|
75
|
+
- `Recommended persistence destination` — the agent's best guess for where this should land if accepted (e.g., "Edge Case Brainstorm checklist → Navigation & URL state", "learnings ledger via the executable contract", "new tooling-gap ticket", "upstream Lisa issue"). Never name machine-local auto-memory, the host-rules directory `.agents/rules/`, or `AGENTS.md` — those are not persistence destinations.
|
|
76
76
|
- `Disposition` — empty checkbox-style field the human will fill: `[ ] Accept` / `[ ] Reject` / `[ ] Defer` plus a free-text reason
|
|
77
77
|
4. **Source map** — appendix listing every work item and PR walked, so the human can verify completeness.
|
|
78
78
|
|
|
@@ -18,7 +18,7 @@ A path or URL to a Debrief triage document produced by `lisa-debrief`. The docum
|
|
|
18
18
|
|
|
19
19
|
1. **Verify the doc exists and parses.** If the file cannot be read or the expected sections are missing, stop and report — do not guess.
|
|
20
20
|
2. **Confirm dispositions exist.** If every row is unmarked, stop and ask the human to triage first. A pristine doc is a no-op, not an error to silently swallow.
|
|
21
|
-
3. **Identify the destination map.** Read the project's `.lisa.config.json` (or stack defaults) for: edge-case checklist file (default: `plugins/src/base/rules/intent-routing.md`'s Edge Case Brainstorm sub-flow), the committed learnings ledger path (resolve it — never hardcode — via `resolveProjectLearningsFile` from `@codyswann/lisa/learnings`: the `learnings.file` override, else the default `.lisa/PROJECT_LEARNINGS.md`), tracker for new tickets. The three knowledge categories (recurring gotcha, process friction, convention drift) all land in the ledger now; machine-local auto-memory and
|
|
21
|
+
3. **Identify the destination map.** Read the project's `.lisa.config.json` (or stack defaults) for: edge-case checklist file (default: `plugins/src/base/rules/intent-routing.md`'s Edge Case Brainstorm sub-flow), the committed learnings ledger path (resolve it — never hardcode — via `resolveProjectLearningsFile` from `@codyswann/lisa/learnings`: the `learnings.file` override, else the default `.lisa/PROJECT_LEARNINGS.md`), tracker for new tickets. The three knowledge categories (recurring gotcha, process friction, convention drift) all land in the ledger now; machine-local auto-memory and host rules (`.agents/rules/`) / `AGENTS.md` are no longer knowledge destinations (see [Ledger persistence](#ledger-persistence-knowledge-categories)).
|
|
22
22
|
|
|
23
23
|
## Routing rules
|
|
24
24
|
|
|
@@ -61,13 +61,13 @@ For each such Accepted row:
|
|
|
61
61
|
- `first_learned` = `last_confirmed` = today (ISO date; on consolidation keep the superseded entry's earliest `first_learned`).
|
|
62
62
|
- `confidence` = **`high`**. A human marking the row **Accept** is corroboration — an independent human judgement that the learning is real — so a debrief-accepted entry starts higher than the learner's single-occurrence auto-capture (which defaults to `low`). The writer re-asserts the entry and token budgets; an over-budget failure means consolidate harder or drop, never truncate by hand.
|
|
63
63
|
|
|
64
|
-
**Machine-local memory is no longer a knowledge destination.** Auto-memory (`project_*.md`, `MEMORY.md`) remains available only for the assistant's *personal* collaboration notes — it is invisible to cloud runs and to teammates, so it can never hold shared project knowledge. **`AGENTS.md` is human-authored** agent operating instruction — it is the source of truth, and `CLAUDE.md` is only a one-line `@AGENTS.md` pointer — and
|
|
64
|
+
**Machine-local memory is no longer a knowledge destination.** Auto-memory (`project_*.md`, `MEMORY.md`) remains available only for the assistant's *personal* collaboration notes — it is invisible to cloud runs and to teammates, so it can never hold shared project knowledge. **`AGENTS.md` is human-authored** agent operating instruction — it is the source of truth, and `CLAUDE.md` is only a one-line `@AGENTS.md` pointer — and the host-rules directory `.agents/rules/` is durable human-authored guidance; `apply` never writes to any of the three for these categories.
|
|
65
65
|
|
|
66
66
|
## Idempotency
|
|
67
67
|
|
|
68
68
|
`apply` is safe to re-run. Each Accepted row carries an evidence link that doubles as a fingerprint. Before writing, check whether the destination already cites that fingerprint:
|
|
69
69
|
|
|
70
|
-
- **Knowledge categories (gotcha, friction, drift) → ledger.** Parse the ledger once with `parseLearningsFile` from `@codyswann/lisa/learnings` and scan the entries' `provenance` for the row's evidence link. If any entry's provenance already contains it, the row is already persisted — skip the write. This replaces the old scattered-file greps (memory files,
|
|
70
|
+
- **Knowledge categories (gotcha, friction, drift) → ledger.** Parse the ledger once with `parseLearningsFile` from `@codyswann/lisa/learnings` and scan the entries' `provenance` for the row's evidence link. If any entry's provenance already contains it, the row is already persisted — skip the write. This replaces the old scattered-file greps (memory files, host rules, `AGENTS.md`): provenance in the single governed ledger is now the one fingerprint surface.
|
|
71
71
|
- **Other categories** keep their existing destination check (the tracker for the ticket marker, the PRD for the defect comment, `intent-routing.md` for the edge-case citation).
|
|
72
72
|
|
|
73
73
|
If the fingerprint is already present, skip the write and note the row as `already-applied` in the run summary. This lets the human triage a doc incrementally (mark a few, run apply, mark more, run apply again) without producing duplicates.
|
|
@@ -56,7 +56,10 @@ as applicable to the current repo:
|
|
|
56
56
|
and `source` only. If a required CLI, MCP surface, or auth context is unavailable in the current
|
|
57
57
|
runtime, report that explicitly instead of pretending the repo is ready.
|
|
58
58
|
4. **Runtime distribution surfaces** — confirm the command, skill, hook, and related distribution
|
|
59
|
-
surfaces relevant to this repo are present where Lisa expects them on the active runtime
|
|
59
|
+
surfaces relevant to this repo are present where Lisa expects them on the active runtime, and
|
|
60
|
+
that the Lisa-owned enforcement artifacts (`scripts/lisa-hooks/*`,
|
|
61
|
+
`scripts/lisa-enforcement-fallback.sh`) match the installed Lisa version rather than an older
|
|
62
|
+
copy. Present-but-stale is a finding: a guard whose fix never landed enforces the old behavior.
|
|
60
63
|
5. **Automation readiness** — inspect whether the configured queue source/tracker and scheduling
|
|
61
64
|
prerequisites are observable, but do **not** create, edit, or delete automations during doctor.
|
|
62
65
|
6. **Optional GitHub Project coordination** — when `github.projects.v2` is configured, delegate
|
|
@@ -341,7 +341,7 @@ Any durable lesson the loop produced is **submitted** to `lisa-persist-learning`
|
|
|
341
341
|
only write path per the `project-learnings` rule) as a candidate; its hostile-default judge — not
|
|
342
342
|
this skill, and not the caller — decides the disposition. A dropped candidate is recorded in
|
|
343
343
|
`Known limits`, never reported as routed or owned. This skill never writes the learnings file,
|
|
344
|
-
|
|
344
|
+
host rules (`.agents/rules/`), or `CLAUDE.md` itself, and never promotes a learning to a higher rung (that
|
|
345
345
|
is the gardener's ticket-gated job).
|
|
346
346
|
|
|
347
347
|
## Idempotency
|
|
@@ -483,5 +483,5 @@ its face, because a single-trajectory loop always has limits.
|
|
|
483
483
|
- **Bounded claims.** One trajectory supports one trajectory's claim. No comparative,
|
|
484
484
|
longitudinal, or population claims; `Known limits` is never empty.
|
|
485
485
|
- **One write path for learnings.** Durable lessons are submitted to `lisa-persist-learning` for
|
|
486
|
-
judgment; this skill never edits the learnings ledger
|
|
486
|
+
judgment; this skill never edits the learnings ledger or any rules tree (host `.agents/rules/` included),
|
|
487
487
|
and never promotes a learning to a higher rung.
|
|
@@ -49,9 +49,12 @@ memorized list:
|
|
|
49
49
|
— stronger than an omission count, because room was not merely tight, a real
|
|
50
50
|
capture was turned away. Drain it every run (see The audit cycle).
|
|
51
51
|
3. **Rules trees** — the plugin `rules/eager/` + `rules/reference/` pairs AND
|
|
52
|
-
the host project's `.
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
the host project's canonical host-rules directory `.agents/rules/`, plus any
|
|
53
|
+
retired-but-surviving single-file rules the project still carries
|
|
54
|
+
(`.claude/rules/PROJECT_RULES.md`, or a legacy `projectRulesFile` path).
|
|
55
|
+
All of it is human-authored only — the gardener proposes, it never rewrites —
|
|
56
|
+
and its existing sections are still audit candidates; first-run candidates
|
|
57
|
+
come from exactly there.
|
|
55
58
|
4. **Skills** — `.claude/skills/` and the plugin skill roots the runtime
|
|
56
59
|
exposes (descriptions are eager context; bodies load on invoke).
|
|
57
60
|
5. **The wiki index** — `wiki/index.md` when the project has a wiki.
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
JSON_INPUT=$(cat)
|
|
18
18
|
|
|
19
|
-
# Project rule (.
|
|
19
|
+
# Project rule (host rules, .agents/rules/): never parse JSON in shell with
|
|
20
20
|
# grep/sed/cut/awk — always use jq. Fail open without jq so we never hard-block
|
|
21
21
|
# the agent on missing tooling.
|
|
22
22
|
command -v jq >/dev/null 2>&1 || exit 0
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# Project Rules
|
|
2
|
-
|
|
3
|
-
Project-specific rules and guidelines that apply to this codebase.
|
|
4
|
-
|
|
5
|
-
Rules in `.claude/rules/` are automatically loaded by Claude Code at session start.
|
|
6
|
-
Add project-specific patterns, conventions, and requirements below.
|
|
7
|
-
|
|
8
|
-
This file is **human-authored only** — the humans' decree surface. Automated
|
|
9
|
-
flows never append to it: machine-captured learnings land in the learnings
|
|
10
|
-
ledger (default `.lisa/PROJECT_LEARNINGS.md`) via the executable contract, and
|
|
11
|
-
the gardener (`/lisa:learnings:audit`) proposes promotions, demotions, and
|
|
12
|
-
retirements as human-gated tracker tickets. Existing sections of this file are
|
|
13
|
-
first-run gardener candidates like any other knowledge — expect prose that
|
|
14
|
-
restates what a lint or hook already enforces to earn a promote-and-delete
|
|
15
|
-
ticket over time, so this file shrinks instead of growing.
|
|
16
|
-
|
|
17
|
-
---
|