@codyswann/lisa 4.64.8 → 4.65.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 (61) hide show
  1. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  2. package/dist/core/upstream-evidence-manifest.js +2 -2
  3. package/package.json +4 -4
  4. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  5. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  6. package/plugins/lisa/rules/eager/session-status-updates.md +1 -0
  7. package/plugins/lisa/rules/reference/session-status-updates.md +51 -0
  8. package/plugins/lisa-agy/plugin.json +1 -1
  9. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  10. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  11. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  12. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  13. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  15. package/plugins/lisa-copilot/rules/eager/session-status-updates.md +1 -0
  16. package/plugins/lisa-copilot/rules/reference/session-status-updates.md +51 -0
  17. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cursor/rules/session-status-updates-reference.mdc +51 -0
  19. package/plugins/lisa-cursor/rules/session-status-updates.mdc +1 -0
  20. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  22. package/plugins/lisa-expo-agy/plugin.json +1 -1
  23. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  27. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  28. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  32. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  33. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  37. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  38. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  42. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  43. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  47. package/plugins/lisa-rails-agy/plugin.json +1 -1
  48. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  52. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  53. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  57. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  58. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  60. package/plugins/src/base/rules/eager/session-status-updates.md +1 -0
  61. package/plugins/src/base/rules/reference/session-status-updates.md +51 -0
@@ -48,9 +48,9 @@ export const NIGHTLY_E2E_GUARD_BEHAVIOR_CERTIFICATES = Object.freeze({
48
48
  }),
49
49
  f87e6eee47ddb6416f2c639b79b96a68173c9c562999fbad98abe012ac913d28: Object.freeze({
50
50
  contractVersion: "1.9.0",
51
- packageVersions: Object.freeze(["4.64.8"]),
51
+ packageVersions: Object.freeze(["4.65.0"]),
52
52
  provenances: Object.freeze([
53
- "workspace package @codyswann/lisa@4.64.8 (typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs)",
53
+ "workspace package @codyswann/lisa@4.65.0 (typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs)",
54
54
  ]),
55
55
  }),
56
56
  });
@@ -446,7 +446,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
446
446
  "plugins/src/base/rules/eager/operational-hazards.md": "9acb3b13a6b3f7d993c7fc37cf70fa94947119c4d59e6295217cafe9f13c6c58",
447
447
  "plugins/src/base/rules/eager/report-actionability.md": "b817c042d834fb046ead75db19cf827322b1abfbb0886fd4545213dd68a80554",
448
448
  "plugins/src/base/rules/eager/security-audit-handling.md": "1f6effe92be66736a0c9fab634c5fdd6ad1e789865faa67bb783c67ddb4ad490",
449
- "plugins/src/base/rules/eager/session-status-updates.md": "bbb42e86b8eb68334b8b9c0bc70beb4895a54015e097bf745fc92156b3e24766",
449
+ "plugins/src/base/rules/eager/session-status-updates.md": "d2d657eda85ce00c3c0699e1c32bc0080df1140b940f9271800f233953f91b4c",
450
450
  "plugins/src/base/rules/eager/settled-decisions.md": "ae1e8d1292db266038af41d9313708a3fba437c036de043ec6b0311418b56017",
451
451
  "plugins/src/base/rules/eager/stale-state-claims.md": "faf5057f5910237b8d5048dbcccb73e0cd03762a8eefbeae43b5d0153104a85a",
452
452
  "plugins/src/base/rules/eager/tool-access-gate.md": "854eb5b16a8e0f51fe7caa0517c10d1ec5ded5ca7324c8304beddc7b81befcf2",
@@ -502,7 +502,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
502
502
  "plugins/src/base/rules/reference/report-actionability.md": "42fa86bb189467c7bc7ee64f6ebccd3926bb2aaf512ee5a498c232025b8a364b",
503
503
  "plugins/src/base/rules/reference/reset-seed-coverage.md": "cfbb50fc9fdb6f0a354255802392adc717ea18af65aca92cc866416bf9256d91",
504
504
  "plugins/src/base/rules/reference/security-audit-handling.md": "9633e11ac89af26444a272449f36fe03f26e61fab40ca16a0ab50464725f7d8c",
505
- "plugins/src/base/rules/reference/session-status-updates.md": "8c34dc9399d6b20103edb3ed8d214aaa05a97065e4c78d8010f394cd041b3320",
505
+ "plugins/src/base/rules/reference/session-status-updates.md": "8878eceb7d81ee4d1ebd51f2f179e659ce36fac3ee7d04bc8631f44923d5e9ae",
506
506
  "plugins/src/base/rules/reference/settled-decisions.md": "a26eb4e879ab33468d2c55c1cf8128fbbfbec9c2cb634d9dd9f008304ad9aa05",
507
507
  "plugins/src/base/rules/reference/stale-state-claims.md": "6329e1a7629f9a12f10454c767842aecee4964df8b7bb4aebda9dde3c0959c2a",
508
508
  "plugins/src/base/rules/reference/tool-access-gate.md": "29579f403648d3b550b8b7e5fba01986fba8d3f0f285b5b5bf6bb0a839f7f10e",
package/package.json CHANGED
@@ -187,7 +187,7 @@
187
187
  "zod-validation-error": "^4.0.0"
188
188
  },
189
189
  "name": "@codyswann/lisa",
190
- "version": "4.64.8",
190
+ "version": "4.65.0",
191
191
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
192
192
  "main": "dist/index.js",
193
193
  "exports": {
@@ -336,7 +336,7 @@
336
336
  "test": "tests"
337
337
  },
338
338
  "types": "./dist/index.d.ts",
339
- "lisaReleaseCommit": "84214e9dc070435d6750099a990aeb7064098bc6",
340
- "gitHead": "84214e9dc070435d6750099a990aeb7064098bc6",
341
- "lisaReleaseTag": "v4.64.8"
339
+ "lisaReleaseCommit": "2b4ff537ed99a9d705e74d521996c98807508208",
340
+ "gitHead": "2b4ff537ed99a9d705e74d521996c98807508208",
341
+ "lisaReleaseTag": "v4.65.0"
342
342
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -7,6 +7,7 @@ Assume the reader is **non-technical** — the same obligation Lisa already plac
7
7
  ## Mandatory
8
8
 
9
9
  - **Plain, conversational language.** No jargon, no Lisa vocabulary, no tool or file names the reader has no use for. Say "the login page broke", not "the auth guard regressed at the controller boundary".
10
+ - **Write every response in ASD-STE100 Simplified Technical English.** All responses, not only status updates. One idea per sentence, active voice, present tense, sentences under 20 words, approved vocabulary — "start" not "initiate", "use" not "utilize". The proper name of a real thing (a command, a file, an error) is always permitted.
10
11
  - **A decision is presented as a decision** — never buried in a status paragraph the reader has to mine. State the choice, give **your recommendation**, and name the **ramifications** of each option in one line apiece.
11
12
  - **End every update with a close line**, exactly this shape:
12
13
 
@@ -27,6 +27,57 @@ Write the way you would speak to a competent colleague who does not work on this
27
27
 
28
28
  Two lines the user themselves offered as the target: *"just tell me what's going on and what my options are"* and *"give me the summary, I'll ask for detail if I want it."*
29
29
 
30
+ ## ASD-STE100 Simplified Technical English
31
+
32
+ Every response you write to a human is written in ASD-STE100 Simplified Technical
33
+ English — the controlled-language standard maintained by the AeroSpace and Defence
34
+ Industries Association of Europe. It is not a separate style from the plain language
35
+ this rule already asks for; it is the written specification of it. "Plain" is a
36
+ preference and gets argued about. ASD-STE100 is a rulebook, so it does not.
37
+
38
+ The scope is every response, not only a status update. A one-line answer, a
39
+ question back to the operator, a review summary and a final report are all bound by
40
+ it.
41
+
42
+ ### The writing rules that bind you
43
+
44
+ - **One idea per sentence.** Split a compound thought into separate sentences.
45
+ - **Sentences stay short.** 20 words at most for a descriptive sentence, 20 for a
46
+ procedural step. Break a longer one in two.
47
+ - **Active voice.** "The test failed", not "a failure was observed".
48
+ - **Present tense** unless you are describing something that already happened.
49
+ - **One word, one meaning.** Use a word in a single sense throughout a response.
50
+ Do not use "check" to mean both an inspection and a CI job in the same message.
51
+ - **Approved vocabulary.** Prefer the simple verb: *start* over initiate, *use*
52
+ over utilize, *do* over perform, *about* over approximately, *before* over prior
53
+ to, *help* over facilitate, *end* over terminate.
54
+ - **No noun clusters longer than three words.** "the deploy approval gate", not
55
+ "the protected environment deploy approval gate policy".
56
+ - **Say the subject.** Do not drop articles or the actor: "The gate blocks the
57
+ push", not "Gate blocks push".
58
+ - **No idiom, no metaphor, no humour that depends on a shared culture.** The reader
59
+ may not speak English as a first language.
60
+ - **Paragraphs stay short.** Six sentences at most.
61
+
62
+ ### What the standard does not forbid
63
+
64
+ The proper name of a real thing is always permitted, even when it is technical: a
65
+ command, a file path, a branch, an error string, a ticket id. ASD-STE100 keeps
66
+ technical names — it constrains the words around them. The plain-language rule
67
+ above still decides *whether* the reader needs that name at all.
68
+
69
+ Numbers, units, measurements and quoted output are reproduced exactly. Never
70
+ simplify the content of an error message, a test result or a security warning to
71
+ obey a word rule; quote it and explain it in simplified prose around the quote.
72
+
73
+ ### Why it is worth the constraint
74
+
75
+ Lisa's premise is that a non-technical person directs the work. The people standing
76
+ at the gates read intake rejections, ticket descriptions and verification reports,
77
+ and many of them do not read English first. A controlled language is the cheapest
78
+ thing that makes those artifacts uniformly readable, and it removes the argument
79
+ about whether a given sentence was "plain enough".
80
+
30
81
  ## Decisions
31
82
 
32
83
  A decision presented as a paragraph of context is a decision the human has to excavate. State it as a decision:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "4.64.8",
3
+ "version": "4.65.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-cdk",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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-cdk",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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",
3
- "version": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -7,6 +7,7 @@ Assume the reader is **non-technical** — the same obligation Lisa already plac
7
7
  ## Mandatory
8
8
 
9
9
  - **Plain, conversational language.** No jargon, no Lisa vocabulary, no tool or file names the reader has no use for. Say "the login page broke", not "the auth guard regressed at the controller boundary".
10
+ - **Write every response in ASD-STE100 Simplified Technical English.** All responses, not only status updates. One idea per sentence, active voice, present tense, sentences under 20 words, approved vocabulary — "start" not "initiate", "use" not "utilize". The proper name of a real thing (a command, a file, an error) is always permitted.
10
11
  - **A decision is presented as a decision** — never buried in a status paragraph the reader has to mine. State the choice, give **your recommendation**, and name the **ramifications** of each option in one line apiece.
11
12
  - **End every update with a close line**, exactly this shape:
12
13
 
@@ -27,6 +27,57 @@ Write the way you would speak to a competent colleague who does not work on this
27
27
 
28
28
  Two lines the user themselves offered as the target: *"just tell me what's going on and what my options are"* and *"give me the summary, I'll ask for detail if I want it."*
29
29
 
30
+ ## ASD-STE100 Simplified Technical English
31
+
32
+ Every response you write to a human is written in ASD-STE100 Simplified Technical
33
+ English — the controlled-language standard maintained by the AeroSpace and Defence
34
+ Industries Association of Europe. It is not a separate style from the plain language
35
+ this rule already asks for; it is the written specification of it. "Plain" is a
36
+ preference and gets argued about. ASD-STE100 is a rulebook, so it does not.
37
+
38
+ The scope is every response, not only a status update. A one-line answer, a
39
+ question back to the operator, a review summary and a final report are all bound by
40
+ it.
41
+
42
+ ### The writing rules that bind you
43
+
44
+ - **One idea per sentence.** Split a compound thought into separate sentences.
45
+ - **Sentences stay short.** 20 words at most for a descriptive sentence, 20 for a
46
+ procedural step. Break a longer one in two.
47
+ - **Active voice.** "The test failed", not "a failure was observed".
48
+ - **Present tense** unless you are describing something that already happened.
49
+ - **One word, one meaning.** Use a word in a single sense throughout a response.
50
+ Do not use "check" to mean both an inspection and a CI job in the same message.
51
+ - **Approved vocabulary.** Prefer the simple verb: *start* over initiate, *use*
52
+ over utilize, *do* over perform, *about* over approximately, *before* over prior
53
+ to, *help* over facilitate, *end* over terminate.
54
+ - **No noun clusters longer than three words.** "the deploy approval gate", not
55
+ "the protected environment deploy approval gate policy".
56
+ - **Say the subject.** Do not drop articles or the actor: "The gate blocks the
57
+ push", not "Gate blocks push".
58
+ - **No idiom, no metaphor, no humour that depends on a shared culture.** The reader
59
+ may not speak English as a first language.
60
+ - **Paragraphs stay short.** Six sentences at most.
61
+
62
+ ### What the standard does not forbid
63
+
64
+ The proper name of a real thing is always permitted, even when it is technical: a
65
+ command, a file path, a branch, an error string, a ticket id. ASD-STE100 keeps
66
+ technical names — it constrains the words around them. The plain-language rule
67
+ above still decides *whether* the reader needs that name at all.
68
+
69
+ Numbers, units, measurements and quoted output are reproduced exactly. Never
70
+ simplify the content of an error message, a test result or a security warning to
71
+ obey a word rule; quote it and explain it in simplified prose around the quote.
72
+
73
+ ### Why it is worth the constraint
74
+
75
+ Lisa's premise is that a non-technical person directs the work. The people standing
76
+ at the gates read intake rejections, ticket descriptions and verification reports,
77
+ and many of them do not read English first. A controlled language is the cheapest
78
+ thing that makes those artifacts uniformly readable, and it removes the argument
79
+ about whether a given sentence was "plain enough".
80
+
30
81
  ## Decisions
31
82
 
32
83
  A decision presented as a paragraph of context is a decision the human has to excavate. State it as a decision:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -32,6 +32,57 @@ Write the way you would speak to a competent colleague who does not work on this
32
32
 
33
33
  Two lines the user themselves offered as the target: *"just tell me what's going on and what my options are"* and *"give me the summary, I'll ask for detail if I want it."*
34
34
 
35
+ ## ASD-STE100 Simplified Technical English
36
+
37
+ Every response you write to a human is written in ASD-STE100 Simplified Technical
38
+ English — the controlled-language standard maintained by the AeroSpace and Defence
39
+ Industries Association of Europe. It is not a separate style from the plain language
40
+ this rule already asks for; it is the written specification of it. "Plain" is a
41
+ preference and gets argued about. ASD-STE100 is a rulebook, so it does not.
42
+
43
+ The scope is every response, not only a status update. A one-line answer, a
44
+ question back to the operator, a review summary and a final report are all bound by
45
+ it.
46
+
47
+ ### The writing rules that bind you
48
+
49
+ - **One idea per sentence.** Split a compound thought into separate sentences.
50
+ - **Sentences stay short.** 20 words at most for a descriptive sentence, 20 for a
51
+ procedural step. Break a longer one in two.
52
+ - **Active voice.** "The test failed", not "a failure was observed".
53
+ - **Present tense** unless you are describing something that already happened.
54
+ - **One word, one meaning.** Use a word in a single sense throughout a response.
55
+ Do not use "check" to mean both an inspection and a CI job in the same message.
56
+ - **Approved vocabulary.** Prefer the simple verb: *start* over initiate, *use*
57
+ over utilize, *do* over perform, *about* over approximately, *before* over prior
58
+ to, *help* over facilitate, *end* over terminate.
59
+ - **No noun clusters longer than three words.** "the deploy approval gate", not
60
+ "the protected environment deploy approval gate policy".
61
+ - **Say the subject.** Do not drop articles or the actor: "The gate blocks the
62
+ push", not "Gate blocks push".
63
+ - **No idiom, no metaphor, no humour that depends on a shared culture.** The reader
64
+ may not speak English as a first language.
65
+ - **Paragraphs stay short.** Six sentences at most.
66
+
67
+ ### What the standard does not forbid
68
+
69
+ The proper name of a real thing is always permitted, even when it is technical: a
70
+ command, a file path, a branch, an error string, a ticket id. ASD-STE100 keeps
71
+ technical names — it constrains the words around them. The plain-language rule
72
+ above still decides *whether* the reader needs that name at all.
73
+
74
+ Numbers, units, measurements and quoted output are reproduced exactly. Never
75
+ simplify the content of an error message, a test result or a security warning to
76
+ obey a word rule; quote it and explain it in simplified prose around the quote.
77
+
78
+ ### Why it is worth the constraint
79
+
80
+ Lisa's premise is that a non-technical person directs the work. The people standing
81
+ at the gates read intake rejections, ticket descriptions and verification reports,
82
+ and many of them do not read English first. A controlled language is the cheapest
83
+ thing that makes those artifacts uniformly readable, and it removes the argument
84
+ about whether a given sentence was "plain enough".
85
+
35
86
  ## Decisions
36
87
 
37
88
  A decision presented as a paragraph of context is a decision the human has to excavate. State it as a decision:
@@ -12,6 +12,7 @@ Assume the reader is **non-technical** — the same obligation Lisa already plac
12
12
  ## Mandatory
13
13
 
14
14
  - **Plain, conversational language.** No jargon, no Lisa vocabulary, no tool or file names the reader has no use for. Say "the login page broke", not "the auth guard regressed at the controller boundary".
15
+ - **Write every response in ASD-STE100 Simplified Technical English.** All responses, not only status updates. One idea per sentence, active voice, present tense, sentences under 20 words, approved vocabulary — "start" not "initiate", "use" not "utilize". The proper name of a real thing (a command, a file, an error) is always permitted.
15
16
  - **A decision is presented as a decision** — never buried in a status paragraph the reader has to mine. State the choice, give **your recommendation**, and name the **ramifications** of each option in one line apiece.
16
17
  - **End every update with a close line**, exactly this shape:
17
18
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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-expo",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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-harper-fabric",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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-harper-fabric",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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-nestjs",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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-nestjs",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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-openclaw",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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-openclaw",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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-phaser",
3
- "version": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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-rails",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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-typescript",
3
- "version": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "4.64.8",
3
+ "version": "4.65.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-typescript",
3
- "version": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "4.64.8",
3
+ "version": "4.65.0",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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": "4.64.8",
3
+ "version": "4.65.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"
@@ -7,6 +7,7 @@ Assume the reader is **non-technical** — the same obligation Lisa already plac
7
7
  ## Mandatory
8
8
 
9
9
  - **Plain, conversational language.** No jargon, no Lisa vocabulary, no tool or file names the reader has no use for. Say "the login page broke", not "the auth guard regressed at the controller boundary".
10
+ - **Write every response in ASD-STE100 Simplified Technical English.** All responses, not only status updates. One idea per sentence, active voice, present tense, sentences under 20 words, approved vocabulary — "start" not "initiate", "use" not "utilize". The proper name of a real thing (a command, a file, an error) is always permitted.
10
11
  - **A decision is presented as a decision** — never buried in a status paragraph the reader has to mine. State the choice, give **your recommendation**, and name the **ramifications** of each option in one line apiece.
11
12
  - **End every update with a close line**, exactly this shape:
12
13
 
@@ -27,6 +27,57 @@ Write the way you would speak to a competent colleague who does not work on this
27
27
 
28
28
  Two lines the user themselves offered as the target: *"just tell me what's going on and what my options are"* and *"give me the summary, I'll ask for detail if I want it."*
29
29
 
30
+ ## ASD-STE100 Simplified Technical English
31
+
32
+ Every response you write to a human is written in ASD-STE100 Simplified Technical
33
+ English — the controlled-language standard maintained by the AeroSpace and Defence
34
+ Industries Association of Europe. It is not a separate style from the plain language
35
+ this rule already asks for; it is the written specification of it. "Plain" is a
36
+ preference and gets argued about. ASD-STE100 is a rulebook, so it does not.
37
+
38
+ The scope is every response, not only a status update. A one-line answer, a
39
+ question back to the operator, a review summary and a final report are all bound by
40
+ it.
41
+
42
+ ### The writing rules that bind you
43
+
44
+ - **One idea per sentence.** Split a compound thought into separate sentences.
45
+ - **Sentences stay short.** 20 words at most for a descriptive sentence, 20 for a
46
+ procedural step. Break a longer one in two.
47
+ - **Active voice.** "The test failed", not "a failure was observed".
48
+ - **Present tense** unless you are describing something that already happened.
49
+ - **One word, one meaning.** Use a word in a single sense throughout a response.
50
+ Do not use "check" to mean both an inspection and a CI job in the same message.
51
+ - **Approved vocabulary.** Prefer the simple verb: *start* over initiate, *use*
52
+ over utilize, *do* over perform, *about* over approximately, *before* over prior
53
+ to, *help* over facilitate, *end* over terminate.
54
+ - **No noun clusters longer than three words.** "the deploy approval gate", not
55
+ "the protected environment deploy approval gate policy".
56
+ - **Say the subject.** Do not drop articles or the actor: "The gate blocks the
57
+ push", not "Gate blocks push".
58
+ - **No idiom, no metaphor, no humour that depends on a shared culture.** The reader
59
+ may not speak English as a first language.
60
+ - **Paragraphs stay short.** Six sentences at most.
61
+
62
+ ### What the standard does not forbid
63
+
64
+ The proper name of a real thing is always permitted, even when it is technical: a
65
+ command, a file path, a branch, an error string, a ticket id. ASD-STE100 keeps
66
+ technical names — it constrains the words around them. The plain-language rule
67
+ above still decides *whether* the reader needs that name at all.
68
+
69
+ Numbers, units, measurements and quoted output are reproduced exactly. Never
70
+ simplify the content of an error message, a test result or a security warning to
71
+ obey a word rule; quote it and explain it in simplified prose around the quote.
72
+
73
+ ### Why it is worth the constraint
74
+
75
+ Lisa's premise is that a non-technical person directs the work. The people standing
76
+ at the gates read intake rejections, ticket descriptions and verification reports,
77
+ and many of them do not read English first. A controlled language is the cheapest
78
+ thing that makes those artifacts uniformly readable, and it removes the argument
79
+ about whether a given sentence was "plain enough".
80
+
30
81
  ## Decisions
31
82
 
32
83
  A decision presented as a paragraph of context is a decision the human has to excavate. State it as a decision: