@codyswann/lisa 2.103.0 → 2.104.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 (26) hide show
  1. package/package.json +1 -1
  2. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  3. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  4. package/plugins/lisa/scripts/automation-status-codex-adapter.mjs +8 -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-openclaw/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  15. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  16. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  17. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  19. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  21. package/plugins/lisa-wiki/commands/status.md +6 -0
  22. package/plugins/lisa-wiki/skills/lisa-wiki-status/SKILL.md +47 -0
  23. package/plugins/lisa-wiki/skills/lisa-wiki-status/agents/openai.yaml +4 -0
  24. package/plugins/src/base/scripts/automation-status-codex-adapter.mjs +8 -1
  25. package/plugins/src/wiki/commands/status.md +6 -0
  26. package/plugins/src/wiki/skills/lisa-wiki-status/SKILL.md +47 -0
package/package.json CHANGED
@@ -82,7 +82,7 @@
82
82
  "lodash": ">=4.18.1"
83
83
  },
84
84
  "name": "@codyswann/lisa",
85
- "version": "2.103.0",
85
+ "version": "2.104.0",
86
86
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
87
87
  "main": "dist/index.js",
88
88
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -179,12 +179,19 @@ export function deriveCodexObservedCommand(prompt) {
179
179
  /Use the `\$([a-z0-9:-]+)` skill with arguments `([^`]+)`/i
180
180
  );
181
181
  if (aliasSkillMatch?.[1] && aliasSkillMatch[2]) {
182
- return `/${aliasSkillMatch[1]} ${aliasSkillMatch[2]}`.trim();
182
+ return `${canonicalizeCodexSkillAlias(aliasSkillMatch[1])} ${aliasSkillMatch[2]}`.trim();
183
183
  }
184
184
 
185
185
  return undefined;
186
186
  }
187
187
 
188
+ function canonicalizeCodexSkillAlias(alias) {
189
+ if (alias.startsWith("lisa-")) {
190
+ return `/lisa:${alias.slice("lisa-".length)}`;
191
+ }
192
+ return `/${alias}`;
193
+ }
194
+
188
195
  /**
189
196
  * Parse the latest run metadata from an automation memory file.
190
197
  *
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "AWS CDK-specific Lisa plugin.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "Expo and React Native-specific skills, agents, rules, and MCP servers.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "Harper/Fabric-specific Lisa rules for TypeScript component apps.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "NestJS-specific skills and migration write-protection hooks.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "Ruby on Rails-specific skills and hooks for RuboCop and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "TypeScript-specific hooks for formatting, linting, and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.103.0",
3
+ "version": "2.104.0",
4
4
  "description": "Distributable LLM Wiki kernel — ingest, query, lint, and maintain a git-native markdown knowledge base across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: "Report Lisa wiki source freshness across enabled connectors. Read-only — summarizes last ingest evidence, skipped/blocker reasons, and targeted next actions without running ingestion."
3
+ argument-hint: "[--json] [--wiki <path>] [--config <path>]"
4
+ ---
5
+
6
+ Use the lisa-wiki-status skill to render the wiki source freshness report from `wiki/lisa-wiki.config.json`, `wiki/log.md`, `wiki/sources/**`, and `wiki/state/**`. This is read-only and must not ingest, edit, branch, commit, push, or open PRs. $ARGUMENTS
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: lisa-wiki-status
3
+ description: Report Lisa wiki source freshness across enabled ingestion connectors. Reads wiki config, log, source notes, and state cursors, then renders a concise read-only freshness table with skipped/blocker reasons and exact next actions. Use when maintainers ask whether the wiki sources are fresh, stale, skipped, blocked, or need targeted ingest.
4
+ allowed-tools: ["Bash", "Read"]
5
+ ---
6
+
7
+ # lisa-wiki-status
8
+
9
+ Render the Lisa wiki source freshness report without changing the repository.
10
+
11
+ ## Scope
12
+
13
+ This skill answers a narrower question than `lisa-wiki-doctor` or `lisa-wiki-lint`: whether each enabled, non-external-write ingestion connector has current source evidence and what the operator should do next.
14
+
15
+ Read these repository files as the source of truth:
16
+
17
+ - `wiki/lisa-wiki.config.json` for enabled connectors and wiki root.
18
+ - `wiki/log.md` for latest ingest, skip, and blocker notes.
19
+ - `wiki/sources/**` for reader-safe source notes.
20
+ - `wiki/state/**` for connector state cursors and source-note references.
21
+
22
+ ## Workflow
23
+
24
+ 1. Resolve the wiki root from `wiki/lisa-wiki.config.json`, unless `--wiki` or `--config` is passed.
25
+ 2. Run the bundled deterministic renderer:
26
+
27
+ ```bash
28
+ node plugins/lisa-wiki/scripts/wiki-status.mjs $ARGUMENTS
29
+ ```
30
+
31
+ If running from the source plugin tree before distribution, use `plugins/src/wiki/scripts/wiki-status.mjs`.
32
+ 3. Report the rendered connector table. Preserve connector verdicts exactly:
33
+ `fresh`, `stale`, `never_ingested`, `skipped`, or `blocked`.
34
+ 4. Include the evidence paths, last observed date, skip/blocker reason when present, and exact next action for each non-fresh connector.
35
+ 5. Mention `lisa-wiki-lint` only as a separate integrity follow-up. Do not conflate freshness with broken links, stale claims, or structure linting.
36
+
37
+ ## Rules
38
+
39
+ - **Read-only.** Do not ingest, edit wiki pages, edit config, advance state, branch, commit, push, open PRs, or run repair flows.
40
+ - Do **not** ask for confirmation before rendering. This status command has no write side effects.
41
+ - Do **not** use global Codex memory or non-project memory as fresh wiki evidence. Only project-scoped source notes, state, and log entries count.
42
+ - If the wiki/config is missing, surface the renderer output or error directly and stop.
43
+ - If a connector is skipped because project-scoped memory is unavailable, preserve that reason and treat accepting the expected skip as a valid next action.
44
+
45
+ ## Related
46
+
47
+ `lisa-wiki-ingest` refreshes sources, `lisa-wiki-lint` checks wiki integrity, and `lisa-wiki-doctor` verifies setup/readiness.
@@ -0,0 +1,4 @@
1
+ display_name: "Lisa Wiki Status"
2
+ short_description: "Report Lisa wiki source freshness across enabled ingestion connectors"
3
+ default_prompt:
4
+ - "Use $lisa-wiki-status: Report Lisa wiki source freshness across enabled ingestion connectors."
@@ -179,12 +179,19 @@ export function deriveCodexObservedCommand(prompt) {
179
179
  /Use the `\$([a-z0-9:-]+)` skill with arguments `([^`]+)`/i
180
180
  );
181
181
  if (aliasSkillMatch?.[1] && aliasSkillMatch[2]) {
182
- return `/${aliasSkillMatch[1]} ${aliasSkillMatch[2]}`.trim();
182
+ return `${canonicalizeCodexSkillAlias(aliasSkillMatch[1])} ${aliasSkillMatch[2]}`.trim();
183
183
  }
184
184
 
185
185
  return undefined;
186
186
  }
187
187
 
188
+ function canonicalizeCodexSkillAlias(alias) {
189
+ if (alias.startsWith("lisa-")) {
190
+ return `/lisa:${alias.slice("lisa-".length)}`;
191
+ }
192
+ return `/${alias}`;
193
+ }
194
+
188
195
  /**
189
196
  * Parse the latest run metadata from an automation memory file.
190
197
  *
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: "Report Lisa wiki source freshness across enabled connectors. Read-only — summarizes last ingest evidence, skipped/blocker reasons, and targeted next actions without running ingestion."
3
+ argument-hint: "[--json] [--wiki <path>] [--config <path>]"
4
+ ---
5
+
6
+ Use the lisa-wiki-status skill to render the wiki source freshness report from `wiki/lisa-wiki.config.json`, `wiki/log.md`, `wiki/sources/**`, and `wiki/state/**`. This is read-only and must not ingest, edit, branch, commit, push, or open PRs. $ARGUMENTS
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: lisa-wiki-status
3
+ description: Report Lisa wiki source freshness across enabled ingestion connectors. Reads wiki config, log, source notes, and state cursors, then renders a concise read-only freshness table with skipped/blocker reasons and exact next actions. Use when maintainers ask whether the wiki sources are fresh, stale, skipped, blocked, or need targeted ingest.
4
+ allowed-tools: ["Bash", "Read"]
5
+ ---
6
+
7
+ # lisa-wiki-status
8
+
9
+ Render the Lisa wiki source freshness report without changing the repository.
10
+
11
+ ## Scope
12
+
13
+ This skill answers a narrower question than `lisa-wiki-doctor` or `lisa-wiki-lint`: whether each enabled, non-external-write ingestion connector has current source evidence and what the operator should do next.
14
+
15
+ Read these repository files as the source of truth:
16
+
17
+ - `wiki/lisa-wiki.config.json` for enabled connectors and wiki root.
18
+ - `wiki/log.md` for latest ingest, skip, and blocker notes.
19
+ - `wiki/sources/**` for reader-safe source notes.
20
+ - `wiki/state/**` for connector state cursors and source-note references.
21
+
22
+ ## Workflow
23
+
24
+ 1. Resolve the wiki root from `wiki/lisa-wiki.config.json`, unless `--wiki` or `--config` is passed.
25
+ 2. Run the bundled deterministic renderer:
26
+
27
+ ```bash
28
+ node plugins/lisa-wiki/scripts/wiki-status.mjs $ARGUMENTS
29
+ ```
30
+
31
+ If running from the source plugin tree before distribution, use `plugins/src/wiki/scripts/wiki-status.mjs`.
32
+ 3. Report the rendered connector table. Preserve connector verdicts exactly:
33
+ `fresh`, `stale`, `never_ingested`, `skipped`, or `blocked`.
34
+ 4. Include the evidence paths, last observed date, skip/blocker reason when present, and exact next action for each non-fresh connector.
35
+ 5. Mention `lisa-wiki-lint` only as a separate integrity follow-up. Do not conflate freshness with broken links, stale claims, or structure linting.
36
+
37
+ ## Rules
38
+
39
+ - **Read-only.** Do not ingest, edit wiki pages, edit config, advance state, branch, commit, push, open PRs, or run repair flows.
40
+ - Do **not** ask for confirmation before rendering. This status command has no write side effects.
41
+ - Do **not** use global Codex memory or non-project memory as fresh wiki evidence. Only project-scoped source notes, state, and log entries count.
42
+ - If the wiki/config is missing, surface the renderer output or error directly and stop.
43
+ - If a connector is skipped because project-scoped memory is unavailable, preserve that reason and treat accepting the expected skip as a valid next action.
44
+
45
+ ## Related
46
+
47
+ `lisa-wiki-ingest` refreshes sources, `lisa-wiki-lint` checks wiki integrity, and `lisa-wiki-doctor` verifies setup/readiness.