@codyswann/lisa 2.201.0 → 2.203.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/README.md +29 -10
- 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-agent-ready/SKILL.md +123 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-agent-ready/agents/openai.yaml +4 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-automation-status/SKILL.md +1 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-github-validate-issue/SKILL.md +28 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-jira-validate-ticket/SKILL.md +28 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-linear-validate-issue/SKILL.md +27 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-automations/SKILL.md +12 -4
- package/plugins/lisa/.codex-plugin/skills/lisa-tear-down-automations/SKILL.md +2 -2
- package/plugins/lisa/commands/lisa/agent-ready.md +6 -0
- package/plugins/lisa/rules/eager/factory-model.md +40 -0
- package/plugins/lisa/rules/reference/factory-model.md +107 -0
- package/plugins/lisa/skills/lisa-agent-ready/SKILL.md +123 -0
- package/plugins/lisa/skills/lisa-agent-ready/agents/openai.yaml +4 -0
- package/plugins/lisa/skills/lisa-automation-status/SKILL.md +1 -0
- package/plugins/lisa/skills/lisa-github-validate-issue/SKILL.md +28 -1
- package/plugins/lisa/skills/lisa-jira-validate-ticket/SKILL.md +28 -1
- package/plugins/lisa/skills/lisa-linear-validate-issue/SKILL.md +27 -0
- package/plugins/lisa/skills/lisa-setup-automations/SKILL.md +13 -5
- package/plugins/lisa/skills/lisa-tear-down-automations/SKILL.md +3 -3
- package/plugins/lisa-agy/commands/lisa/agent-ready.md +6 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-agent-ready/SKILL.md +123 -0
- package/plugins/lisa-agy/skills/lisa-automation-status/SKILL.md +1 -0
- package/plugins/lisa-agy/skills/lisa-github-validate-issue/SKILL.md +28 -1
- package/plugins/lisa-agy/skills/lisa-jira-validate-ticket/SKILL.md +28 -1
- package/plugins/lisa-agy/skills/lisa-linear-validate-issue/SKILL.md +27 -0
- package/plugins/lisa-agy/skills/lisa-setup-automations/SKILL.md +13 -5
- package/plugins/lisa-agy/skills/lisa-tear-down-automations/SKILL.md +3 -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/commands/lisa/agent-ready.md +6 -0
- package/plugins/lisa-copilot/rules/eager/factory-model.md +40 -0
- package/plugins/lisa-copilot/rules/reference/factory-model.md +107 -0
- package/plugins/lisa-copilot/skills/lisa-agent-ready/SKILL.md +123 -0
- package/plugins/lisa-copilot/skills/lisa-automation-status/SKILL.md +1 -0
- package/plugins/lisa-copilot/skills/lisa-github-validate-issue/SKILL.md +28 -1
- package/plugins/lisa-copilot/skills/lisa-jira-validate-ticket/SKILL.md +28 -1
- package/plugins/lisa-copilot/skills/lisa-linear-validate-issue/SKILL.md +27 -0
- package/plugins/lisa-copilot/skills/lisa-setup-automations/SKILL.md +13 -5
- package/plugins/lisa-copilot/skills/lisa-tear-down-automations/SKILL.md +3 -3
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/commands/lisa/agent-ready.md +6 -0
- package/plugins/lisa-cursor/rules/factory-model-reference.mdc +112 -0
- package/plugins/lisa-cursor/rules/factory-model.mdc +45 -0
- package/plugins/lisa-cursor/skills/lisa-agent-ready/SKILL.md +123 -0
- package/plugins/lisa-cursor/skills/lisa-automation-status/SKILL.md +1 -0
- package/plugins/lisa-cursor/skills/lisa-github-validate-issue/SKILL.md +28 -1
- package/plugins/lisa-cursor/skills/lisa-jira-validate-ticket/SKILL.md +28 -1
- package/plugins/lisa-cursor/skills/lisa-linear-validate-issue/SKILL.md +27 -0
- package/plugins/lisa-cursor/skills/lisa-setup-automations/SKILL.md +13 -5
- package/plugins/lisa-cursor/skills/lisa-tear-down-automations/SKILL.md +3 -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-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +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/commands/lisa/agent-ready.md +6 -0
- package/plugins/src/base/rules/eager/factory-model.md +40 -0
- package/plugins/src/base/rules/reference/factory-model.md +107 -0
- package/plugins/src/base/skills/lisa-agent-ready/SKILL.md +123 -0
- package/plugins/src/base/skills/lisa-automation-status/SKILL.md +1 -0
- package/plugins/src/base/skills/lisa-github-validate-issue/SKILL.md +28 -1
- package/plugins/src/base/skills/lisa-jira-validate-ticket/SKILL.md +28 -1
- package/plugins/src/base/skills/lisa-linear-validate-issue/SKILL.md +27 -0
- package/plugins/src/base/skills/lisa-setup-automations/SKILL.md +13 -5
- package/plugins/src/base/skills/lisa-tear-down-automations/SKILL.md +3 -3
- package/ui/index.html +177 -25
package/ui/index.html
CHANGED
|
@@ -1280,9 +1280,27 @@
|
|
|
1280
1280
|
/* ---------------------------------- Overview ---------------------------------- */
|
|
1281
1281
|
DATA.sections.overview = {
|
|
1282
1282
|
title: "Overview",
|
|
1283
|
-
desc: "
|
|
1283
|
+
desc: "Lisa runs this project as a set of software factories — agent-operated production lines that build, verify, and ship with as few humans as possible. Everything below is what the factories are governed by.",
|
|
1284
1284
|
src: ".lisa.config.json · .lisa.config.local.json",
|
|
1285
1285
|
blocks: [
|
|
1286
|
+
{
|
|
1287
|
+
type: "flow",
|
|
1288
|
+
title:
|
|
1289
|
+
"The four factories — humans hand off at the gates, never inside",
|
|
1290
|
+
states: [
|
|
1291
|
+
{ name: "Research → PRDs" },
|
|
1292
|
+
{ name: "⛩ gate" },
|
|
1293
|
+
{ name: "Plan → work units" },
|
|
1294
|
+
{ name: "⛩ gate" },
|
|
1295
|
+
{ name: "Implement → software" },
|
|
1296
|
+
{ name: "⛩ gate" },
|
|
1297
|
+
{ name: "Verify → go/no-go", terminal: true },
|
|
1298
|
+
],
|
|
1299
|
+
},
|
|
1300
|
+
{
|
|
1301
|
+
type: "callout",
|
|
1302
|
+
text: "<b>The gates are adversarial.</b> Agents, humans, and automations submit inputs; an intake agent admits only work that is unambiguous and that the factory has provable tooling access to execute — everything else is rejected and raised. Three loops feed the pipeline on schedule: <b>QA</b> (exploratory bugs), <b>Product Planning</b> (ideated PRDs), and <b>Monitoring</b> (observability regressions). Verify failures flow straight back into Implement as build-ready tickets. The goal: <b>non-technical people creating scalable software</b> — everything that crosses a gate is written for them, and end users never talk to a coding agent.",
|
|
1303
|
+
},
|
|
1286
1304
|
{
|
|
1287
1305
|
type: "tiles",
|
|
1288
1306
|
tiles: [
|
|
@@ -1301,7 +1319,11 @@
|
|
|
1301
1319
|
v: "9",
|
|
1302
1320
|
s: "incl. CodeRabbit + GitGuardian",
|
|
1303
1321
|
},
|
|
1304
|
-
{
|
|
1322
|
+
{
|
|
1323
|
+
k: "Automations",
|
|
1324
|
+
v: "6",
|
|
1325
|
+
s: "intake, repair, loops — all healthy",
|
|
1326
|
+
},
|
|
1305
1327
|
],
|
|
1306
1328
|
},
|
|
1307
1329
|
{
|
|
@@ -1377,6 +1399,20 @@
|
|
|
1377
1399
|
command: "lisa sync",
|
|
1378
1400
|
done: true,
|
|
1379
1401
|
},
|
|
1402
|
+
{
|
|
1403
|
+
label: "Make the project agent-ready (brownfield)",
|
|
1404
|
+
desc: "Builds the knowledge wiki from everything the agent can reach and writes wiki/gaps.md — the questions only a human can answer. Answer inline, re-run in a new session, repeat until zero gaps. Greenfield projects are ready by construction.",
|
|
1405
|
+
command: "/lisa:agent-ready",
|
|
1406
|
+
done: false,
|
|
1407
|
+
why: "wiki/gaps.md has 2 open gaps",
|
|
1408
|
+
},
|
|
1409
|
+
{
|
|
1410
|
+
label: "Adopt the standards (conformance refactor)",
|
|
1411
|
+
desc: "Apply Lisa's full lint rules, guardrails, and thresholds — the project goes red by design — then agents refactor to conform without changing business logic, proven by tests and empirical verification.",
|
|
1412
|
+
command: "/lisa:improve:* · /lisa:fix:linter-error",
|
|
1413
|
+
done: false,
|
|
1414
|
+
why: "blocked by agent-ready",
|
|
1415
|
+
},
|
|
1380
1416
|
{
|
|
1381
1417
|
label: "Connect the work tracker",
|
|
1382
1418
|
desc: "Verifies the workflow status names and writes the tracker section. This project: JIRA, project ACME.",
|
|
@@ -1404,7 +1440,7 @@
|
|
|
1404
1440
|
},
|
|
1405
1441
|
{
|
|
1406
1442
|
label: "Schedule the automations",
|
|
1407
|
-
desc: "Creates the intake, repair, and
|
|
1443
|
+
desc: "Creates the six-automation fleet — intake, repair, and the QA / Product Planning / Monitoring loops — on the harness’s native scheduler.",
|
|
1408
1444
|
command: "/lisa:setup-automations",
|
|
1409
1445
|
done: false,
|
|
1410
1446
|
},
|
|
@@ -1580,7 +1616,7 @@
|
|
|
1580
1616
|
v: "Audits the connected observability providers against the alert thresholds and files regression tickets",
|
|
1581
1617
|
},
|
|
1582
1618
|
{ t: "text", v: "On demand between scheduled runs" },
|
|
1583
|
-
{ t: "mono", v: "
|
|
1619
|
+
{ t: "mono", v: "monitor" },
|
|
1584
1620
|
],
|
|
1585
1621
|
[
|
|
1586
1622
|
{ t: "mono", v: "/lisa:debrief" },
|
|
@@ -1591,6 +1627,18 @@
|
|
|
1591
1627
|
{ t: "text", v: "After an initiative ships" },
|
|
1592
1628
|
{ t: "mono", v: "—" },
|
|
1593
1629
|
],
|
|
1630
|
+
[
|
|
1631
|
+
{ t: "mono", v: "/lisa:agent-ready" },
|
|
1632
|
+
{
|
|
1633
|
+
t: "text",
|
|
1634
|
+
v: "Brownfield onboarding: builds the knowledge wiki from every reachable source and writes the human-answerable gaps file; absorbs answers on re-runs until zero gaps remain",
|
|
1635
|
+
},
|
|
1636
|
+
{
|
|
1637
|
+
t: "text",
|
|
1638
|
+
v: "Once per brownfield adoption — re-run in a fresh session after answering gaps, until it reports agent-ready",
|
|
1639
|
+
},
|
|
1640
|
+
{ t: "mono", v: "—" },
|
|
1641
|
+
],
|
|
1594
1642
|
[
|
|
1595
1643
|
{ t: "mono", v: "/lisa:doctor" },
|
|
1596
1644
|
{
|
|
@@ -3004,17 +3052,19 @@
|
|
|
3004
3052
|
/* ---------------------------------- Automations ---------------------------------- */
|
|
3005
3053
|
DATA.sections.automations = {
|
|
3006
3054
|
title: "Automations",
|
|
3007
|
-
desc: "
|
|
3055
|
+
desc: "The scheduled fleet that runs the factories: pipeline movers (intake, repair) and the three feeding loops (QA, Product Planning, Monitoring), on the harness\u2019s native scheduler. Names carry a stable lisa-auto-<project>- prefix so teardown is precise.",
|
|
3008
3056
|
src: "plugins/src/base/skills/lisa-setup-automations",
|
|
3009
3057
|
blocks: [
|
|
3010
3058
|
{
|
|
3011
3059
|
type: "table",
|
|
3012
3060
|
card: "Scheduled jobs",
|
|
3061
|
+
note: "Status and next run are mocked \u2014 live wiring is LCW-1 (#1544)",
|
|
3013
3062
|
cols: [
|
|
3014
3063
|
"Automation",
|
|
3015
3064
|
"What it does",
|
|
3016
|
-
"Command",
|
|
3017
3065
|
"Cadence",
|
|
3066
|
+
"Last run",
|
|
3067
|
+
"Next run",
|
|
3018
3068
|
"Enabled",
|
|
3019
3069
|
],
|
|
3020
3070
|
rows: [
|
|
@@ -3022,80 +3072,161 @@
|
|
|
3022
3072
|
{ t: "mono", v: "intake-tickets" },
|
|
3023
3073
|
{
|
|
3024
3074
|
t: "text",
|
|
3025
|
-
v: "Claims the next build-ready ticket
|
|
3075
|
+
v: "Claims the next build-ready ticket and runs the full build flow on it \u2014 one item per cycle",
|
|
3026
3076
|
},
|
|
3027
|
-
{ t: "mono", v: "/lisa:intake <build queue>" },
|
|
3028
3077
|
{
|
|
3029
3078
|
t: "select",
|
|
3030
3079
|
v: "every 10 min",
|
|
3031
3080
|
options: ["every 10 min", "every 30 min", "every 60 min"],
|
|
3032
3081
|
},
|
|
3082
|
+
{
|
|
3083
|
+
t: "run",
|
|
3084
|
+
ok: true,
|
|
3085
|
+
v: "12:50",
|
|
3086
|
+
reason: "ok \u2014 queue empty, exited clean",
|
|
3087
|
+
},
|
|
3088
|
+
{ t: "mono", v: "13:00" },
|
|
3033
3089
|
{ t: "toggle", v: true },
|
|
3034
3090
|
],
|
|
3035
3091
|
[
|
|
3036
3092
|
{ t: "mono", v: "intake-prd" },
|
|
3037
3093
|
{
|
|
3038
3094
|
t: "text",
|
|
3039
|
-
v: "Validates the next ready PRD and either creates its
|
|
3095
|
+
v: "Validates the next ready PRD at the gate and either creates its work units or blocks it with clarifying questions",
|
|
3040
3096
|
},
|
|
3041
|
-
{ t: "mono", v: "/lisa:intake <PRD queue>" },
|
|
3042
3097
|
{
|
|
3043
3098
|
t: "select",
|
|
3044
3099
|
v: "every 60 min",
|
|
3045
3100
|
options: ["every 10 min", "every 30 min", "every 60 min"],
|
|
3046
3101
|
},
|
|
3102
|
+
{
|
|
3103
|
+
t: "run",
|
|
3104
|
+
ok: true,
|
|
3105
|
+
v: "12:04",
|
|
3106
|
+
reason: "ok \u2014 1 PRD ticketed",
|
|
3107
|
+
},
|
|
3108
|
+
{ t: "mono", v: "13:04" },
|
|
3047
3109
|
{ t: "toggle", v: true },
|
|
3048
3110
|
],
|
|
3049
3111
|
[
|
|
3050
3112
|
{ t: "mono", v: "intake-repair" },
|
|
3051
3113
|
{
|
|
3052
3114
|
t: "text",
|
|
3053
|
-
v: "Finds stuck work
|
|
3115
|
+
v: "Finds stuck work \u2014 stalled builds, half-closed items, unreconciled rollups \u2014 and repairs each one",
|
|
3054
3116
|
},
|
|
3055
|
-
{ t: "mono", v: "/lisa:repair-intake <queue>" },
|
|
3056
3117
|
{
|
|
3057
3118
|
t: "select",
|
|
3058
3119
|
v: "every 60 min",
|
|
3059
3120
|
options: ["every 30 min", "every 60 min", "every 3 h"],
|
|
3060
3121
|
},
|
|
3122
|
+
{
|
|
3123
|
+
t: "run",
|
|
3124
|
+
ok: true,
|
|
3125
|
+
v: "12:04",
|
|
3126
|
+
reason: "ok \u2014 0 stuck items",
|
|
3127
|
+
},
|
|
3128
|
+
{ t: "mono", v: "13:04" },
|
|
3061
3129
|
{ t: "toggle", v: true },
|
|
3062
3130
|
],
|
|
3063
3131
|
[
|
|
3064
3132
|
{ t: "mono", v: "exploratory-bugs" },
|
|
3065
3133
|
{
|
|
3066
3134
|
t: "text",
|
|
3067
|
-
v: "
|
|
3135
|
+
v: "QA loop: explores the product like a first-time user (respecting the mutation policy) and files bugs build-ready",
|
|
3068
3136
|
},
|
|
3069
|
-
{ t: "mono", v: "/lisa-<stack>:exploratory-qa" },
|
|
3070
3137
|
{ t: "select", v: "daily", options: ["daily", "weekly"] },
|
|
3138
|
+
{
|
|
3139
|
+
t: "run",
|
|
3140
|
+
ok: true,
|
|
3141
|
+
v: "04:00",
|
|
3142
|
+
reason: "ok \u2014 2 bugs filed",
|
|
3143
|
+
},
|
|
3144
|
+
{ t: "mono", v: "tomorrow 04:00" },
|
|
3071
3145
|
{ t: "toggle", v: true },
|
|
3072
3146
|
],
|
|
3073
3147
|
[
|
|
3074
3148
|
{ t: "mono", v: "exploratory-prds" },
|
|
3075
3149
|
{
|
|
3076
3150
|
t: "text",
|
|
3077
|
-
v: "
|
|
3151
|
+
v: "Product Planning loop: ideates improvements and writes PRDs prd-ready",
|
|
3152
|
+
},
|
|
3153
|
+
{ t: "select", v: "daily", options: ["daily", "weekly"] },
|
|
3154
|
+
{
|
|
3155
|
+
t: "run",
|
|
3156
|
+
ok: "warn",
|
|
3157
|
+
v: "04:15",
|
|
3158
|
+
reason: "skipped \u2014 queue pressure (1 prd-ready waiting)",
|
|
3159
|
+
},
|
|
3160
|
+
{ t: "mono", v: "tomorrow 04:15" },
|
|
3161
|
+
{ t: "toggle", v: true },
|
|
3162
|
+
],
|
|
3163
|
+
[
|
|
3164
|
+
{ t: "mono", v: "monitor" },
|
|
3165
|
+
{
|
|
3166
|
+
t: "text",
|
|
3167
|
+
v: "Monitoring loop: audits the connected observability providers against the alert thresholds and files regression tickets",
|
|
3078
3168
|
},
|
|
3079
|
-
{ t: "mono", v: "/lisa:project-ideation" },
|
|
3080
3169
|
{ t: "select", v: "daily", options: ["daily", "weekly"] },
|
|
3170
|
+
{
|
|
3171
|
+
t: "run",
|
|
3172
|
+
ok: true,
|
|
3173
|
+
v: "05:00",
|
|
3174
|
+
reason: "ok \u2014 1 regression filed",
|
|
3175
|
+
},
|
|
3176
|
+
{ t: "mono", v: "tomorrow 05:00" },
|
|
3081
3177
|
{ t: "toggle", v: true },
|
|
3082
3178
|
],
|
|
3083
3179
|
],
|
|
3084
3180
|
},
|
|
3181
|
+
{
|
|
3182
|
+
card: "Fleet controls",
|
|
3183
|
+
rows: [
|
|
3184
|
+
{
|
|
3185
|
+
key: "",
|
|
3186
|
+
label: "Fleet health",
|
|
3187
|
+
desc: "From /lisa:automation-status \u2014 whether every expected automation exists, matches the setup contract, and shows healthy recent activity.",
|
|
3188
|
+
control: stat(
|
|
3189
|
+
"6 of 6 present \u00b7 healthy \u00b7 checked 12:58",
|
|
3190
|
+
"mono"
|
|
3191
|
+
),
|
|
3192
|
+
},
|
|
3193
|
+
{
|
|
3194
|
+
key: "",
|
|
3195
|
+
label: "Run an intake cycle now",
|
|
3196
|
+
desc: "Forces one immediate cycle of the PRD and ticket intakes without waiting for the schedule.",
|
|
3197
|
+
control: {
|
|
3198
|
+
type: "button",
|
|
3199
|
+
label: "Run intake now",
|
|
3200
|
+
toast: "Prototype \u2014 fleet controls are not wired up yet",
|
|
3201
|
+
},
|
|
3202
|
+
},
|
|
3203
|
+
{
|
|
3204
|
+
key: "",
|
|
3205
|
+
label: "Pause the fleet",
|
|
3206
|
+
desc: "Suspends every lisa-auto-<project>-* automation; re-enable per row or resume all.",
|
|
3207
|
+
control: {
|
|
3208
|
+
type: "button",
|
|
3209
|
+
label: "Pause all",
|
|
3210
|
+
toast: "Prototype \u2014 fleet controls are not wired up yet",
|
|
3211
|
+
},
|
|
3212
|
+
},
|
|
3213
|
+
],
|
|
3214
|
+
},
|
|
3085
3215
|
{
|
|
3086
3216
|
card: "Autonomy flags",
|
|
3217
|
+
note: "Autonomous by default \u2014 the adversarial intake gate is the quality control",
|
|
3087
3218
|
rows: [
|
|
3088
3219
|
{
|
|
3089
3220
|
key: "auto-start-tickets",
|
|
3090
3221
|
label: "Auto-start exploratory bug tickets",
|
|
3091
|
-
desc: "On: bugs found by exploratory QA are filed build-ready and picked up automatically. Off: they land in the backlog for human triage.",
|
|
3092
|
-
control: tog(
|
|
3222
|
+
desc: "On (default): bugs found by exploratory QA are filed build-ready and picked up automatically. Off: they land in the backlog for human triage.",
|
|
3223
|
+
control: tog(true),
|
|
3093
3224
|
},
|
|
3094
3225
|
{
|
|
3095
3226
|
key: "auto-start-prds",
|
|
3096
3227
|
label: "Auto-start ideated PRDs",
|
|
3097
|
-
desc: "On: ideated PRDs are created prd-ready and flow straight into intake. Off: they stay drafts for human review.",
|
|
3098
|
-
control: tog(
|
|
3228
|
+
desc: "On (default): ideated PRDs are created prd-ready and flow straight into intake. Off: they stay drafts for human review.",
|
|
3229
|
+
control: tog(true),
|
|
3099
3230
|
},
|
|
3100
3231
|
],
|
|
3101
3232
|
},
|
|
@@ -3126,7 +3257,7 @@
|
|
|
3126
3257
|
},
|
|
3127
3258
|
{
|
|
3128
3259
|
type: "callout",
|
|
3129
|
-
text: "exploratory-bugs is only
|
|
3260
|
+
text: "exploratory-bugs is created only for stacks that ship exploratory QA (expo, rails, harper-fabric); monitor is created unconditionally \u2014 it reports observability gaps rather than failing when no provider is connected.",
|
|
3130
3261
|
},
|
|
3131
3262
|
],
|
|
3132
3263
|
};
|
|
@@ -4976,8 +5107,26 @@
|
|
|
4976
5107
|
td.appendChild(el("span", "status-why", esc(cell.reason)));
|
|
4977
5108
|
}
|
|
4978
5109
|
}
|
|
5110
|
+
} else if (cell.t === "run") {
|
|
5111
|
+
const cls =
|
|
5112
|
+
cell.ok === true
|
|
5113
|
+
? "pass"
|
|
5114
|
+
: cell.ok === "warn"
|
|
5115
|
+
? "warn"
|
|
5116
|
+
: "fail";
|
|
5117
|
+
const mark =
|
|
5118
|
+
cell.ok === true ? "✓" : cell.ok === "warn" ? "◐" : "✗";
|
|
5119
|
+
td.appendChild(
|
|
5120
|
+
el("span", "badge " + cls, mark + " " + esc(cell.v))
|
|
5121
|
+
);
|
|
5122
|
+
if (cell.reason) {
|
|
5123
|
+
td.appendChild(el("span", "status-why", esc(cell.reason)));
|
|
5124
|
+
}
|
|
4979
5125
|
} else if (cell.t === "toggle" || cell.t === "select") {
|
|
4980
|
-
|
|
5126
|
+
// Table cells use {t, v}; buildControl expects {type, value}.
|
|
5127
|
+
td.appendChild(
|
|
5128
|
+
buildControl({ ...cell, type: cell.t, value: cell.v }, null)
|
|
5129
|
+
);
|
|
4981
5130
|
}
|
|
4982
5131
|
tr.appendChild(td);
|
|
4983
5132
|
});
|
|
@@ -5083,11 +5232,14 @@
|
|
|
5083
5232
|
}
|
|
5084
5233
|
|
|
5085
5234
|
function buildCallout(block) {
|
|
5086
|
-
|
|
5235
|
+
const box = el(
|
|
5087
5236
|
"div",
|
|
5088
|
-
"callout" + (block.variant === "warn" ? " warn" : "")
|
|
5089
|
-
block.text
|
|
5237
|
+
"callout" + (block.variant === "warn" ? " warn" : "")
|
|
5090
5238
|
);
|
|
5239
|
+
// Single child span: the callout is flex, and multiple inline nodes
|
|
5240
|
+
// would each become flex items and render as broken columns.
|
|
5241
|
+
box.appendChild(el("span", "", block.text));
|
|
5242
|
+
return box;
|
|
5091
5243
|
}
|
|
5092
5244
|
|
|
5093
5245
|
function buildTabs(block) {
|