@codyswann/lisa 2.302.0 → 2.303.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 (53) hide show
  1. package/dist/core/upstream-evidence-manifest.js +1 -1
  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-agy/plugin.json +1 -1
  6. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  7. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  8. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  9. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  10. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  11. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  12. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  13. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  15. package/plugins/lisa-expo-agy/plugin.json +1 -1
  16. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  20. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  21. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  25. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  26. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  30. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  31. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  35. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  36. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  40. package/plugins/lisa-rails-agy/plugin.json +1 -1
  41. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  45. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  46. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  50. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  51. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  53. package/ui/index.html +59 -18
@@ -1040,7 +1040,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1040
1040
  "typescript/merge/.oxlintrc.json": "4debc093acfd263eb81ae15894073ebf098513204f45f40b83fb8fa5353fa1f8",
1041
1041
  "typescript/package-lisa/package.lisa.json": "bdd1766c2f327290207874b04fd3a577a8188bb57c2fd77d482bb7d6ecf17355",
1042
1042
  "ui/README.md": "deeb35e767ea5dd2883268835ea3ad21cbad9fa63ec8d8ff5e200f0e2a7d2751",
1043
- "ui/index.html": "00cbff55c898652ce66a07218e15fb21eb0302a4b0cc003464cec9bb0b45cc6e",
1043
+ "ui/index.html": "0d5e4c48eccde9a5e1974dbf440003abc820e58d258326ba7a6f97dc4f4f0f9c",
1044
1044
  });
1045
1045
  /** Exact paths tracked by the public Lisa repository at generation time. */
1046
1046
  export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
package/package.json CHANGED
@@ -115,7 +115,7 @@
115
115
  "brace-expansion": ">=5.0.8"
116
116
  },
117
117
  "name": "@codyswann/lisa",
118
- "version": "2.302.0",
118
+ "version": "2.303.0",
119
119
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
120
120
  "main": "dist/index.js",
121
121
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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-expo",
3
- "version": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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": "2.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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.302.0",
3
+ "version": "2.303.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"
package/ui/index.html CHANGED
@@ -5097,14 +5097,14 @@
5097
5097
  /* ---------------------------------- Readiness (intake) ---------------------------------- */
5098
5098
  DATA.sections.readiness = {
5099
5099
  title: "Readiness",
5100
- desc: "The onboarding questionnaire — Vanta, but for agent-run software. Answer what you use for each thing an autonomous factory depends on, and the meter shows how ready you are. Every question here has a detailed home elsewhere in the console; this is the flat version you fill out first. Nothing is required all at once — an unanswered question is a known gap, not a failure.",
5100
+ desc: "The onboarding questionnaire — and the working Annex B self-assessment instrument of TASC (spec/tasc-0.1-draft.md). Answer what you use for each thing an autonomous factory depends on, and the meter shows how ready you are; each group cites the TASC criteria it evidences. Every question has a detailed home elsewhere in the console; this is the flat version you fill out first. Nothing is required all at once — an unanswered question is a known gap, not a failure.",
5101
5101
  src: "intake · maps onto .lisa.config.json",
5102
5102
  blocks: [
5103
5103
  {
5104
5104
  type: "intake",
5105
5105
  groups: [
5106
5106
  {
5107
- label: "The bottom line",
5107
+ label: "The bottom line (AC7.4)",
5108
5108
  note: "The one number the rest of this questionnaire exists to predict.",
5109
5109
  items: [
5110
5110
  {
@@ -5121,7 +5121,7 @@
5121
5121
  ],
5122
5122
  },
5123
5123
  {
5124
- label: "Credentials & access",
5124
+ label: "Credentials & access (AC6)",
5125
5125
  items: [
5126
5126
  {
5127
5127
  q: "Where do your agents' secrets live?",
@@ -5175,7 +5175,7 @@
5175
5175
  ],
5176
5176
  },
5177
5177
  {
5178
- label: "Where agents run",
5178
+ label: "Where agents run (AC6 · AC9.5)",
5179
5179
  items: [
5180
5180
  {
5181
5181
  q: "What sandbox do unattended agents run in?",
@@ -5227,7 +5227,7 @@
5227
5227
  ],
5228
5228
  },
5229
5229
  {
5230
- label: "The agent's program",
5230
+ label: "The agent's program (AC8.2–8.3)",
5231
5231
  note: "Prompts, skills and models are the factory's own source code and runtime. This group asks whether that layer is under change control — or improvised per run.",
5232
5232
  items: [
5233
5233
  {
@@ -5273,7 +5273,7 @@
5273
5273
  ],
5274
5274
  },
5275
5275
  {
5276
- label: "Work intake",
5276
+ label: "Work intake (AC8.4)",
5277
5277
  items: [
5278
5278
  {
5279
5279
  q: "Where do product requirements (PRDs) live?",
@@ -5331,7 +5331,7 @@
5331
5331
  ],
5332
5332
  },
5333
5333
  {
5334
- label: "Correctness gates",
5334
+ label: "Correctness gates (SI1–SI3 · AC5.4)",
5335
5335
  items: [
5336
5336
  {
5337
5337
  q: "Is unit behaviour proven on every change?",
@@ -5358,7 +5358,7 @@
5358
5358
  },
5359
5359
  {
5360
5360
  q: "Minimum unit-test coverage you enforce?",
5361
- help: "Below this the build fails. Thresholds should only ratchet up.",
5361
+ help: "Below this the build fails. TASC SI2: the floor must be nonzero and disclosed, and it only ratchets up — zero is not a floor.",
5362
5362
  kind: "number",
5363
5363
  value: 74,
5364
5364
  unit: "%",
@@ -5399,7 +5399,7 @@
5399
5399
  ],
5400
5400
  },
5401
5401
  {
5402
- label: "Security gates",
5402
+ label: "Security gates (AC5 · AC9)",
5403
5403
  items: [
5404
5404
  {
5405
5405
  q: "What blocks a committed secret?",
@@ -5475,9 +5475,19 @@
5475
5475
  ],
5476
5476
  },
5477
5477
  {
5478
- label: "Agent attack surface",
5478
+ label: "Agent attack surface (AC3)",
5479
5479
  note: "The group above secures the code; this one secures the agent. Inbound, the risk is untrusted content steering it; outbound, exfiltration — which is governed by the egress lock and credential gateway you answered earlier.",
5480
5480
  items: [
5481
+ {
5482
+ q: "Is there a written threat model for your agents?",
5483
+ help: "TASC AC3.1. The rows below are mitigations; this asks whether the model itself exists as a document — revisited when the system changes — so the mitigations are answers to named threats rather than folklore.",
5484
+ kind: "select",
5485
+ options: [
5486
+ "Yes — revisited on system change",
5487
+ "Written once, going stale",
5488
+ "No",
5489
+ ],
5490
+ },
5481
5491
  {
5482
5492
  q: "What stops fetched content from becoming instructions?",
5483
5493
  help: "Prompt injection: a web page, README, or issue comment the agent reads is untrusted input that may try to steer it. Mitigation means labeling it as data and gating risky tools while it is in context.",
@@ -5573,7 +5583,7 @@
5573
5583
  ],
5574
5584
  },
5575
5585
  {
5576
- label: "Code health",
5586
+ label: "Code health (SI7)",
5577
5587
  note: "The bar for this whole group: authorless code. A reviewer with the author hidden should not be able to tell who — or what — wrote a change. Anything that gives the author away is an uncodified opinion, and each row below is one class of opinion made enforceable.",
5578
5588
  items: [
5579
5589
  {
@@ -5656,7 +5666,7 @@
5656
5666
  ],
5657
5667
  },
5658
5668
  {
5659
- label: "Design & UI",
5669
+ label: "Design & UI (UX)",
5660
5670
  note: "The determinism story for anything with a screen — a design system is the linter for UI. Without one an agent improvises every screen; with one it assembles from known parts. A backend or CLI answers “no UI” to each, which counts as answered.",
5661
5671
  items: [
5662
5672
  {
@@ -5708,7 +5718,7 @@
5708
5718
  ],
5709
5719
  },
5710
5720
  {
5711
- label: "Review & merge",
5721
+ label: "Review & merge (AC8.1 · AC5)",
5712
5722
  items: [
5713
5723
  {
5714
5724
  q: "What reviews every diff before merge?",
@@ -5745,10 +5755,21 @@
5745
5755
  "No — advisory only",
5746
5756
  ],
5747
5757
  },
5758
+ {
5759
+ q: "When did a gate last actually block a change?",
5760
+ help: "TASC AC5.5, and the exercised-evidence principle in one question: a gate that has never fired is indistinguishable from one that was never wired up. Being able to point at a recent block is the strongest evidence a control exists.",
5761
+ kind: "select",
5762
+ value: "Recently — we can point to it",
5763
+ options: [
5764
+ "Recently — we can point to it",
5765
+ "It has blocked before",
5766
+ "Never — or we can't tell",
5767
+ ],
5768
+ },
5748
5769
  ],
5749
5770
  },
5750
5771
  {
5751
- label: "Ship & rollback",
5772
+ label: "Ship & rollback (AC8.5 · AC7.2)",
5752
5773
  note: "Change management — the human-shaped hole. In a human SDLC a person approved the deploy and reverted the bad one; every row here is that person's named replacement.",
5753
5774
  items: [
5754
5775
  {
@@ -5812,7 +5833,7 @@
5812
5833
  ],
5813
5834
  },
5814
5835
  {
5815
- label: "Verify & acceptance",
5836
+ label: "Verify & acceptance (SI5–SI6)",
5816
5837
  note: "Processing integrity: green CI proves the tests passed, not that the product works. Something has to use it.",
5817
5838
  items: [
5818
5839
  {
@@ -5844,7 +5865,7 @@
5844
5865
  ],
5845
5866
  },
5846
5867
  {
5847
- label: "Observe",
5868
+ label: "Observe (AC4)",
5848
5869
  items: [
5849
5870
  {
5850
5871
  q: "What captures production errors?",
@@ -5874,6 +5895,16 @@
5874
5895
  "None",
5875
5896
  ],
5876
5897
  },
5898
+ {
5899
+ q: "Does a production threshold crossing become a work item automatically?",
5900
+ help: "TASC AC4.3 — the routing half of observability. Sensing without filing means a human still stands between the signal and the fix. Findings enter through the same validated intake as any other work; no privileged path.",
5901
+ kind: "select",
5902
+ options: [
5903
+ "Yes — filed through validated intake",
5904
+ "Alerts a human, who files",
5905
+ "Dashboards only",
5906
+ ],
5907
+ },
5877
5908
  {
5878
5909
  q: "What tells you what users actually do?",
5879
5910
  help: "Product analytics is the richest Research input there is — it routes usage patterns back to the Research gate as PRD material.",
@@ -5890,7 +5921,7 @@
5890
5921
  ],
5891
5922
  },
5892
5923
  {
5893
- label: "Operate & recover",
5924
+ label: "Operate & recover (AC7 · AC2)",
5894
5925
  note: "Availability — the who-notices-at-3am group. Factories fail loudly; sensors and schedulers fail silently, and silence is ambiguous.",
5895
5926
  items: [
5896
5927
  {
@@ -5945,6 +5976,16 @@
5945
5976
  "None",
5946
5977
  ],
5947
5978
  },
5979
+ {
5980
+ q: "Could a non-technical operator understand what the system tells them?",
5981
+ help: "TASC AC2.1. Blocked reasons, clarifying questions, verdicts and escalations are read by whoever stands at the gate — often not an engineer. A boundary message that reads like a stack trace is a control that fails its audience.",
5982
+ kind: "select",
5983
+ options: [
5984
+ "Yes — plain language is the contract at every boundary",
5985
+ "Mixed",
5986
+ "It reads like stack traces",
5987
+ ],
5988
+ },
5948
5989
  {
5949
5990
  q: "Does every scheduled loop end each run in a named outcome?",
5950
5991
  help: "A runbook contract: each run terminates in exactly one of a fixed outcome set (nothing needed, work proposed, change proved, approval requested, recovery required, policy obsolete) with an operator-readable summary. A run that just stops is illegible — and illegible runs are how dead loops hide.",
@@ -5959,7 +6000,7 @@
5959
6000
  ],
5960
6001
  },
5961
6002
  {
5962
- label: "Governance & accountability",
6003
+ label: "Governance & accountability (AC1 · AC9.1 · DP)",
5963
6004
  note: "The audit-trail cluster: everything a human used to vouch for by being in the room.",
5964
6005
  items: [
5965
6006
  {