@codyswann/lisa 2.24.0 → 2.25.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.
Files changed (142) hide show
  1. package/.claude-plugin/marketplace.json +6 -0
  2. package/package.json +1 -1
  3. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  4. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  5. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  6. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  7. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  8. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  9. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  10. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  11. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  12. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  13. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  15. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  16. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  17. package/plugins/lisa-wiki/.claude-plugin/plugin.json +8 -0
  18. package/plugins/lisa-wiki/.codex-plugin/plugin.json +32 -0
  19. package/plugins/lisa-wiki/ci/lisa-wiki-validate.yml +32 -0
  20. package/plugins/lisa-wiki/commands/add-ingest.md +6 -0
  21. package/plugins/lisa-wiki/commands/add-role.md +6 -0
  22. package/plugins/lisa-wiki/commands/doctor.md +6 -0
  23. package/plugins/lisa-wiki/commands/ingest.md +6 -0
  24. package/plugins/lisa-wiki/commands/lint.md +6 -0
  25. package/plugins/lisa-wiki/commands/migrate.md +6 -0
  26. package/plugins/lisa-wiki/commands/onboard-me.md +6 -0
  27. package/plugins/lisa-wiki/commands/query.md +6 -0
  28. package/plugins/lisa-wiki/commands/setup.md +6 -0
  29. package/plugins/lisa-wiki/schema/lisa-wiki-config.schema.json +118 -0
  30. package/plugins/lisa-wiki/schema/wiki-structure.schema.json +51 -0
  31. package/plugins/lisa-wiki/scripts/_wiki-lib.mjs +185 -0
  32. package/plugins/lisa-wiki/scripts/diff-guard.mjs +116 -0
  33. package/plugins/lisa-wiki/scripts/ingest-git.mjs +189 -0
  34. package/plugins/lisa-wiki/scripts/ingest-memory.mjs +130 -0
  35. package/plugins/lisa-wiki/scripts/ingest-roles.mjs +85 -0
  36. package/plugins/lisa-wiki/scripts/ingest_slack_channel.py +329 -0
  37. package/plugins/lisa-wiki/scripts/lint-wiki.mjs +320 -0
  38. package/plugins/lisa-wiki/scripts/mcp-doctor.mjs +72 -0
  39. package/plugins/lisa-wiki/scripts/render-contract.mjs +107 -0
  40. package/plugins/lisa-wiki/scripts/rewrite-refs.mjs +144 -0
  41. package/plugins/lisa-wiki/scripts/slack_oauth_user.py +179 -0
  42. package/plugins/lisa-wiki/scripts/validate-config.mjs +232 -0
  43. package/plugins/lisa-wiki/scripts/verify-migration.mjs +199 -0
  44. package/plugins/lisa-wiki/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
  45. package/plugins/lisa-wiki/skills/lisa-wiki-add-role/SKILL.md +30 -0
  46. package/plugins/lisa-wiki/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
  47. package/plugins/lisa-wiki/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
  48. package/plugins/lisa-wiki/skills/lisa-wiki-connector-git/SKILL.md +25 -0
  49. package/plugins/lisa-wiki/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
  50. package/plugins/lisa-wiki/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
  51. package/plugins/lisa-wiki/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
  52. package/plugins/lisa-wiki/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
  53. package/plugins/lisa-wiki/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
  54. package/plugins/lisa-wiki/skills/lisa-wiki-connector-web/SKILL.md +23 -0
  55. package/plugins/lisa-wiki/skills/lisa-wiki-doctor/SKILL.md +47 -0
  56. package/plugins/lisa-wiki/skills/lisa-wiki-ingest/SKILL.md +43 -0
  57. package/plugins/lisa-wiki/skills/lisa-wiki-lint/SKILL.md +32 -0
  58. package/plugins/lisa-wiki/skills/lisa-wiki-migrate/SKILL.md +43 -0
  59. package/plugins/lisa-wiki/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
  60. package/plugins/lisa-wiki/skills/lisa-wiki-query/SKILL.md +30 -0
  61. package/plugins/lisa-wiki/skills/lisa-wiki-setup/SKILL.md +45 -0
  62. package/plugins/lisa-wiki/skills/lisa-wiki-usage/SKILL.md +50 -0
  63. package/plugins/lisa-wiki/templates/agents/role-agent.claude.md +16 -0
  64. package/plugins/lisa-wiki/templates/agents/role-agent.codex.toml +15 -0
  65. package/plugins/lisa-wiki/templates/index.md +17 -0
  66. package/plugins/lisa-wiki/templates/llm-wiki-contract.md +60 -0
  67. package/plugins/lisa-wiki/templates/log.md +8 -0
  68. package/plugins/lisa-wiki/templates/page-types/architecture.md +18 -0
  69. package/plugins/lisa-wiki/templates/page-types/concept.md +18 -0
  70. package/plugins/lisa-wiki/templates/page-types/decision.md +18 -0
  71. package/plugins/lisa-wiki/templates/page-types/entity.md +19 -0
  72. package/plugins/lisa-wiki/templates/page-types/open-question.md +18 -0
  73. package/plugins/lisa-wiki/templates/page-types/playbook.md +18 -0
  74. package/plugins/lisa-wiki/templates/page-types/project.md +19 -0
  75. package/plugins/lisa-wiki/templates/page-types/requirement.md +19 -0
  76. package/plugins/lisa-wiki/templates/page-types/staff.md +26 -0
  77. package/plugins/lisa-wiki/templates/start-here.md +24 -0
  78. package/plugins/lisa-wiki/templates/state-readme.md +20 -0
  79. package/plugins/src/wiki/.claude-plugin/plugin.json +6 -0
  80. package/plugins/src/wiki/ci/lisa-wiki-validate.yml +32 -0
  81. package/plugins/src/wiki/commands/add-ingest.md +6 -0
  82. package/plugins/src/wiki/commands/add-role.md +6 -0
  83. package/plugins/src/wiki/commands/doctor.md +6 -0
  84. package/plugins/src/wiki/commands/ingest.md +6 -0
  85. package/plugins/src/wiki/commands/lint.md +6 -0
  86. package/plugins/src/wiki/commands/migrate.md +6 -0
  87. package/plugins/src/wiki/commands/onboard-me.md +6 -0
  88. package/plugins/src/wiki/commands/query.md +6 -0
  89. package/plugins/src/wiki/commands/setup.md +6 -0
  90. package/plugins/src/wiki/schema/lisa-wiki-config.schema.json +118 -0
  91. package/plugins/src/wiki/schema/wiki-structure.schema.json +51 -0
  92. package/plugins/src/wiki/scripts/_wiki-lib.mjs +185 -0
  93. package/plugins/src/wiki/scripts/diff-guard.mjs +116 -0
  94. package/plugins/src/wiki/scripts/ingest-git.mjs +189 -0
  95. package/plugins/src/wiki/scripts/ingest-memory.mjs +130 -0
  96. package/plugins/src/wiki/scripts/ingest-roles.mjs +85 -0
  97. package/plugins/src/wiki/scripts/ingest_slack_channel.py +329 -0
  98. package/plugins/src/wiki/scripts/lint-wiki.mjs +320 -0
  99. package/plugins/src/wiki/scripts/mcp-doctor.mjs +72 -0
  100. package/plugins/src/wiki/scripts/render-contract.mjs +107 -0
  101. package/plugins/src/wiki/scripts/rewrite-refs.mjs +144 -0
  102. package/plugins/src/wiki/scripts/slack_oauth_user.py +179 -0
  103. package/plugins/src/wiki/scripts/validate-config.mjs +232 -0
  104. package/plugins/src/wiki/scripts/verify-migration.mjs +199 -0
  105. package/plugins/src/wiki/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
  106. package/plugins/src/wiki/skills/lisa-wiki-add-role/SKILL.md +30 -0
  107. package/plugins/src/wiki/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
  108. package/plugins/src/wiki/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
  109. package/plugins/src/wiki/skills/lisa-wiki-connector-git/SKILL.md +25 -0
  110. package/plugins/src/wiki/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
  111. package/plugins/src/wiki/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
  112. package/plugins/src/wiki/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
  113. package/plugins/src/wiki/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
  114. package/plugins/src/wiki/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
  115. package/plugins/src/wiki/skills/lisa-wiki-connector-web/SKILL.md +23 -0
  116. package/plugins/src/wiki/skills/lisa-wiki-doctor/SKILL.md +47 -0
  117. package/plugins/src/wiki/skills/lisa-wiki-ingest/SKILL.md +43 -0
  118. package/plugins/src/wiki/skills/lisa-wiki-lint/SKILL.md +32 -0
  119. package/plugins/src/wiki/skills/lisa-wiki-migrate/SKILL.md +43 -0
  120. package/plugins/src/wiki/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
  121. package/plugins/src/wiki/skills/lisa-wiki-query/SKILL.md +30 -0
  122. package/plugins/src/wiki/skills/lisa-wiki-setup/SKILL.md +45 -0
  123. package/plugins/src/wiki/skills/lisa-wiki-usage/SKILL.md +50 -0
  124. package/plugins/src/wiki/templates/agents/role-agent.claude.md +16 -0
  125. package/plugins/src/wiki/templates/agents/role-agent.codex.toml +15 -0
  126. package/plugins/src/wiki/templates/index.md +17 -0
  127. package/plugins/src/wiki/templates/llm-wiki-contract.md +60 -0
  128. package/plugins/src/wiki/templates/log.md +8 -0
  129. package/plugins/src/wiki/templates/page-types/architecture.md +18 -0
  130. package/plugins/src/wiki/templates/page-types/concept.md +18 -0
  131. package/plugins/src/wiki/templates/page-types/decision.md +18 -0
  132. package/plugins/src/wiki/templates/page-types/entity.md +19 -0
  133. package/plugins/src/wiki/templates/page-types/open-question.md +18 -0
  134. package/plugins/src/wiki/templates/page-types/playbook.md +18 -0
  135. package/plugins/src/wiki/templates/page-types/project.md +19 -0
  136. package/plugins/src/wiki/templates/page-types/requirement.md +19 -0
  137. package/plugins/src/wiki/templates/page-types/staff.md +26 -0
  138. package/plugins/src/wiki/templates/start-here.md +24 -0
  139. package/plugins/src/wiki/templates/state-readme.md +20 -0
  140. package/scripts/build-plugins.sh +29 -21
  141. package/scripts/check-plugins-sync.sh +1 -1
  142. package/scripts/generate-codex-plugin-artifacts.mjs +22 -0
@@ -0,0 +1,18 @@
1
+ ---
2
+ type: playbook
3
+ created: {{date}}
4
+ updated: {{date}}
5
+ related: []
6
+ sources: []
7
+ ---
8
+
9
+ # {{title}}
10
+
11
+ ## When to use
12
+
13
+ ## Steps
14
+
15
+ ## Verification
16
+ <!-- How to confirm it worked -->
17
+
18
+ ## Pitfalls
@@ -0,0 +1,19 @@
1
+ ---
2
+ type: project
3
+ created: {{date}}
4
+ updated: {{date}}
5
+ related: []
6
+ sources: []
7
+ ---
8
+
9
+ # {{title}}
10
+
11
+ ## Repository
12
+ <!-- | Field | Value | : local path, remote, default branch, HEAD, status -->
13
+
14
+ ## Technology signals
15
+
16
+ ## Structure signals
17
+
18
+ ## Notes & evidence
19
+ <!-- Cite source notes, e.g. PR #/commit -->
@@ -0,0 +1,19 @@
1
+ ---
2
+ type: requirement
3
+ created: {{date}}
4
+ updated: {{date}}
5
+ related: []
6
+ sources: []
7
+ ---
8
+
9
+ # {{title}}
10
+
11
+ ## Summary
12
+
13
+ ## Acceptance criteria
14
+ <!-- Gherkin: Given / When / Then -->
15
+
16
+ ## Out of scope
17
+
18
+ ## Notes & evidence
19
+ <!-- Cite source notes -->
@@ -0,0 +1,26 @@
1
+ ---
2
+ type: staff
3
+ created: {{date}}
4
+ updated: {{date}}
5
+ related: []
6
+ sources: []
7
+ sensitivity: {{sensitivity}}
8
+ ---
9
+
10
+ # {{role}} ({{id}})
11
+
12
+ ## Role
13
+ <!-- Human or Agent; what this role is responsible for -->
14
+
15
+ ## Domain
16
+ Owned categories: {{ownedCategories}}
17
+ Owned connectors: {{ownedConnectors}}
18
+
19
+ ## Expertise
20
+ {{expertise}}
21
+
22
+ ## Reports to
23
+
24
+ ## Notes
25
+ <!-- The runnable subagent for this role lives at .claude/agents/{{id}}.md and .codex/agents/{{id}}.toml.
26
+ Whether it is ever invoked/scheduled is out of scope for the wiki. -->
@@ -0,0 +1,24 @@
1
+ # Start here — {{displayName}}
2
+
3
+ ## Purpose
4
+ {{purpose}}
5
+
6
+ ## What this is
7
+ A git-native LLM Wiki owned by **{{org}}** and maintained by the `lisa-wiki` kernel. It is the
8
+ durable home for this project's knowledge (and documentation). Raw sources are preserved under
9
+ `{{wikiRoot}}/sources/`; distilled knowledge lives in the category pages; the rules are in
10
+ `{{wikiRoot}}/schema/llm-wiki-contract.md`.
11
+
12
+ ## How to use it
13
+ - **New here?** Run `/onboard-me` (Codex: `$lisa-wiki-onboard-me`) for a guided tour + sample questions.
14
+ - **Find/answer something:** `/query "<question>"` — cited answers from the wiki.
15
+ - **Add knowledge:** `/ingest <url|file|prompt>` (Codex: `$lisa-wiki-ingest`), or `/ingest` with no
16
+ argument for a full ingest across all enabled non-external-write sources (external-write sources
17
+ require explicit intent).
18
+ - **Browse:** [index.md](index.md).
19
+ - **Check health:** `/lint`.
20
+
21
+ ## Map
22
+ Synthesis categories: {{categories}}.
23
+ Sources: `{{wikiRoot}}/sources/` · State: `{{wikiRoot}}/state/` · Contract:
24
+ `{{wikiRoot}}/schema/llm-wiki-contract.md` · Log: `{{wikiRoot}}/log.md`.
@@ -0,0 +1,20 @@
1
+ # state/ — ingestion cursors
2
+
3
+ JSON cursors that let ingestion resume incrementally — one file per source/connector at
4
+ `state/<system>/*.json`. A cursor is advanced **only after** its source notes + synthesis + index +
5
+ log + verification all pass (never before). Common envelope:
6
+
7
+ ```json
8
+ {
9
+ "connector": "git",
10
+ "profile": "default",
11
+ "lastSuccessfulRunAt": "1970-01-01T00:00:00Z",
12
+ "cursor": {},
13
+ "sourceNotes": [],
14
+ "synthesisPages": [],
15
+ "schemaVersion": "1.0.0"
16
+ }
17
+ ```
18
+
19
+ The post-migration / post-setup verification report is written to
20
+ `state/migration/doctor-report.json` by `/doctor`.
@@ -24,28 +24,36 @@ inject_version() {
24
24
  fi
25
25
  }
26
26
 
27
- # Build base plugin
28
- BASE_OUT="$PLUGINS_DIR/lisa"
29
- rm -rf "$BASE_OUT"
30
- mkdir -p "$BASE_OUT"
31
- cp -r "$SRC_DIR/base/." "$BASE_OUT/"
32
- inject_version "$BASE_OUT/.claude-plugin/plugin.json"
33
- node "$ROOT_DIR/scripts/generate-codex-plugin-artifacts.mjs" "$BASE_OUT" "$VERSION"
34
- echo "Built plugins/lisa (v$VERSION)"
27
+ # Build one plugin: copy plugins/src/<src_name> -> plugins/<out_name>, inject the
28
+ # release version into its Claude manifest, then derive the Codex artifacts.
29
+ build_plugin() {
30
+ local src_name="$1"
31
+ local out_name="$2"
32
+ local src="$SRC_DIR/$src_name"
33
+ if [ ! -d "$src" ]; then
34
+ echo "Skipping plugins/$out_name (no source at plugins/src/$src_name)"
35
+ return 0
36
+ fi
37
+ local out="$PLUGINS_DIR/$out_name"
38
+ rm -rf "$out"
39
+ mkdir -p "$out"
40
+ cp -r "$src/." "$out/"
41
+ inject_version "$out/.claude-plugin/plugin.json"
42
+ node "$ROOT_DIR/scripts/generate-codex-plugin-artifacts.mjs" "$out" "$VERSION"
43
+ echo "Built plugins/$out_name (v$VERSION)"
44
+ }
45
+
46
+ # Base plugin
47
+ build_plugin base lisa
35
48
 
36
- # Build stack-specific plugins (NO base copy)
49
+ # Stack-specific plugins (NO base copy)
37
50
  STACKS=(typescript expo nestjs cdk harper-fabric rails)
38
51
  for stack in "${STACKS[@]}"; do
39
- STACK_SRC="$SRC_DIR/$stack"
40
- if [ ! -d "$STACK_SRC" ]; then
41
- echo "Skipping plugins/lisa-$stack (no source)"
42
- continue
43
- fi
44
- OUT="$PLUGINS_DIR/lisa-$stack"
45
- rm -rf "$OUT"
46
- mkdir -p "$OUT"
47
- cp -r "$STACK_SRC/." "$OUT/"
48
- inject_version "$OUT/.claude-plugin/plugin.json"
49
- node "$ROOT_DIR/scripts/generate-codex-plugin-artifacts.mjs" "$OUT" "$VERSION"
50
- echo "Built plugins/lisa-$stack (v$VERSION)"
52
+ build_plugin "$stack" "lisa-$stack"
53
+ done
54
+
55
+ # Standalone plugins (not language stacks): each builds plugins/src/<name> -> plugins/lisa-<name>
56
+ STANDALONE=(wiki)
57
+ for name in "${STANDALONE[@]}"; do
58
+ build_plugin "$name" "lisa-$name"
51
59
  done
@@ -35,7 +35,7 @@ if ! git diff --quiet -- plugins/; then
35
35
  echo " overwrites the change." >&2
36
36
  echo "" >&2
37
37
  echo " Fix:" >&2
38
- echo " 1. Make your edit under plugins/src/<base|stack>/..." >&2
38
+ echo " 1. Make your edit under plugins/src/<base|stack|standalone (e.g. wiki)>/..." >&2
39
39
  echo " 2. Run: bun run build:plugins" >&2
40
40
  echo " 3. Commit both plugins/src and the regenerated plugins/lisa*." >&2
41
41
  # Leave the tree dirty so the diff is inspectable locally; CI fails on exit.
@@ -297,6 +297,28 @@ function metadataFor(pluginName) {
297
297
  "Improve this Rails model",
298
298
  ],
299
299
  },
300
+ "lisa-wiki": {
301
+ displayName: "LLM Wiki",
302
+ description:
303
+ "Distributable LLM Wiki kernel — ingest, query, lint, and maintain a git-native markdown knowledge base across Claude and Codex.",
304
+ shortDescription: "LLM Wiki knowledge base",
305
+ longDescription:
306
+ "A config-driven, git-native LLM Wiki: ingest sources (git, PRs, project-scoped memory, Jira, Slack, docs, …) into durable markdown, query with citations, lint integrity, onboard users, absorb existing documentation, and scaffold domain-expert role subagents. Distributed for both Claude Code and Codex.",
307
+ category: "Productivity",
308
+ capabilities: ["Interactive", "Write"],
309
+ keywords: [
310
+ "wiki",
311
+ "knowledge-base",
312
+ "ingest",
313
+ "documentation",
314
+ "llm-wiki",
315
+ ],
316
+ defaultPrompt: [
317
+ "Onboard me to this project",
318
+ "Ingest the latest sources into the wiki",
319
+ "Query the wiki",
320
+ ],
321
+ },
300
322
  };
301
323
  return (
302
324
  map[pluginName] ?? {