arcane-cli 0.14.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 (136) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +253 -0
  3. package/dist/assets/.arcane/agents/agent-policies-template.md +414 -0
  4. package/dist/assets/.arcane/governance/agent-approved-paths.md +60 -0
  5. package/dist/assets/.arcane/governance/agent-policies.md +414 -0
  6. package/dist/assets/.arcane/governance/agent-work-queue-model.md +61 -0
  7. package/dist/assets/.arcane/governance/authentication-strategy.md +220 -0
  8. package/dist/assets/.arcane/governance/cicd-standards.md +227 -0
  9. package/dist/assets/.arcane/governance/decision-documentation-standard.md +335 -0
  10. package/dist/assets/.arcane/governance/development-methodology.md +384 -0
  11. package/dist/assets/.arcane/governance/git-conventions.md +759 -0
  12. package/dist/assets/.arcane/governance/hardening-checklist.md +117 -0
  13. package/dist/assets/.arcane/governance/naming-conventions.md +142 -0
  14. package/dist/assets/.arcane/governance/new-business-setup.md +182 -0
  15. package/dist/assets/.arcane/governance/poc-management-pattern.md +190 -0
  16. package/dist/assets/.arcane/governance/portable-bootstrap.md +101 -0
  17. package/dist/assets/.arcane/governance/product-excellence-standards.md +211 -0
  18. package/dist/assets/.arcane/governance/rca-process-standard.md +157 -0
  19. package/dist/assets/.arcane/governance/spell-authoring-standards.md +129 -0
  20. package/dist/assets/.arcane/governance/testing-standards.md +158 -0
  21. package/dist/assets/.arcane/governance/threat-model.md +104 -0
  22. package/dist/assets/.arcane/governance/universal-agent-rules.md +108 -0
  23. package/dist/assets/.arcane/image-prompts/adelaide-image-prompt.md +140 -0
  24. package/dist/assets/.arcane/image-prompts/alexander-image-prompt.md +138 -0
  25. package/dist/assets/.arcane/image-prompts/bess-image-prompt.md +139 -0
  26. package/dist/assets/.arcane/image-prompts/circe-image-prompt.md +143 -0
  27. package/dist/assets/.arcane/image-prompts/custodio-image-prompt.md +140 -0
  28. package/dist/assets/.arcane/image-prompts/iris-image-prompt.md +139 -0
  29. package/dist/assets/.arcane/image-prompts/kellar-image-prompt.md +141 -0
  30. package/dist/assets/.arcane/image-prompts/lafayette-image-prompt.md +140 -0
  31. package/dist/assets/.arcane/image-prompts/lince-image-prompt.md +142 -0
  32. package/dist/assets/.arcane/image-prompts/mercurio-image-prompt.md +140 -0
  33. package/dist/assets/.arcane/image-prompts/merlin-image-prompt.md +139 -0
  34. package/dist/assets/.arcane/image-prompts/prospero-image-prompt.md +141 -0
  35. package/dist/assets/.arcane/templates/venture-template/overview.md +66 -0
  36. package/dist/assets/.claude/commands/spell-address-review.md +9 -0
  37. package/dist/assets/.claude/commands/spell-arcane-version.md +9 -0
  38. package/dist/assets/.claude/commands/spell-architect.md +9 -0
  39. package/dist/assets/.claude/commands/spell-bootstrap-business.md +9 -0
  40. package/dist/assets/.claude/commands/spell-brainstorm.md +9 -0
  41. package/dist/assets/.claude/commands/spell-bug.md +9 -0
  42. package/dist/assets/.claude/commands/spell-bump.md +9 -0
  43. package/dist/assets/.claude/commands/spell-check-drift.md +9 -0
  44. package/dist/assets/.claude/commands/spell-close-session.md +9 -0
  45. package/dist/assets/.claude/commands/spell-commit-work.md +9 -0
  46. package/dist/assets/.claude/commands/spell-create-pull-request.md +9 -0
  47. package/dist/assets/.claude/commands/spell-document.md +9 -0
  48. package/dist/assets/.claude/commands/spell-dotnet-expert.md +9 -0
  49. package/dist/assets/.claude/commands/spell-eas-ios-deploy.md +9 -0
  50. package/dist/assets/.claude/commands/spell-enchant.md +9 -0
  51. package/dist/assets/.claude/commands/spell-explain-concept.md +9 -0
  52. package/dist/assets/.claude/commands/spell-feedback.md +9 -0
  53. package/dist/assets/.claude/commands/spell-full-cycle.md +9 -0
  54. package/dist/assets/.claude/commands/spell-generate-bot-icons.md +9 -0
  55. package/dist/assets/.claude/commands/spell-implement.md +9 -0
  56. package/dist/assets/.claude/commands/spell-open-session.md +9 -0
  57. package/dist/assets/.claude/commands/spell-plan.md +9 -0
  58. package/dist/assets/.claude/commands/spell-present-arcane.md +9 -0
  59. package/dist/assets/.claude/commands/spell-product-review.md +9 -0
  60. package/dist/assets/.claude/commands/spell-review-batch.md +9 -0
  61. package/dist/assets/.claude/commands/spell-review.md +9 -0
  62. package/dist/assets/.claude/commands/spell-save-idea.md +9 -0
  63. package/dist/assets/.claude/commands/spell-scope.md +9 -0
  64. package/dist/assets/.claude/commands/spell-security-review.md +9 -0
  65. package/dist/assets/.claude/commands/spell-ship.md +9 -0
  66. package/dist/assets/.claude/commands/spell-status.md +9 -0
  67. package/dist/assets/.claude/commands/spell-suggest-feature.md +9 -0
  68. package/dist/assets/.claude/commands/spell-test.md +9 -0
  69. package/dist/assets/.claude/commands/spell-todo.md +9 -0
  70. package/dist/assets/.github/agents/adelaide.agent.md +44 -0
  71. package/dist/assets/.github/agents/alexander.agent.md +43 -0
  72. package/dist/assets/.github/agents/bess.agent.md +42 -0
  73. package/dist/assets/.github/agents/circe.agent.md +43 -0
  74. package/dist/assets/.github/agents/custodio.agent.md +44 -0
  75. package/dist/assets/.github/agents/iris.agent.md +43 -0
  76. package/dist/assets/.github/agents/kellar.agent.md +43 -0
  77. package/dist/assets/.github/agents/lafayette.agent.md +42 -0
  78. package/dist/assets/.github/agents/lince.agent.md +43 -0
  79. package/dist/assets/.github/agents/mercurio.agent.md +43 -0
  80. package/dist/assets/.github/agents/merlin.agent.md +44 -0
  81. package/dist/assets/.github/agents/prospero.agent.md +43 -0
  82. package/dist/assets/.github/instructions/agent-output.instructions.md +48 -0
  83. package/dist/assets/.github/prompts/spell-address-review.prompt.md +114 -0
  84. package/dist/assets/.github/prompts/spell-arcane-version.prompt.md +82 -0
  85. package/dist/assets/.github/prompts/spell-architect.prompt.md +116 -0
  86. package/dist/assets/.github/prompts/spell-bootstrap-business.prompt.md +73 -0
  87. package/dist/assets/.github/prompts/spell-brainstorm.prompt.md +124 -0
  88. package/dist/assets/.github/prompts/spell-bug.prompt.md +109 -0
  89. package/dist/assets/.github/prompts/spell-bump.prompt.md +73 -0
  90. package/dist/assets/.github/prompts/spell-check-drift.prompt.md +97 -0
  91. package/dist/assets/.github/prompts/spell-close-session.prompt.md +189 -0
  92. package/dist/assets/.github/prompts/spell-commit-work.prompt.md +211 -0
  93. package/dist/assets/.github/prompts/spell-create-pull-request.prompt.md +170 -0
  94. package/dist/assets/.github/prompts/spell-document.prompt.md +83 -0
  95. package/dist/assets/.github/prompts/spell-dotnet-expert.prompt.md +117 -0
  96. package/dist/assets/.github/prompts/spell-eas-ios-deploy.prompt.md +183 -0
  97. package/dist/assets/.github/prompts/spell-enchant.prompt.md +385 -0
  98. package/dist/assets/.github/prompts/spell-explain-concept.prompt.md +69 -0
  99. package/dist/assets/.github/prompts/spell-feedback.prompt.md +113 -0
  100. package/dist/assets/.github/prompts/spell-full-cycle.prompt.md +201 -0
  101. package/dist/assets/.github/prompts/spell-generate-bot-icons.prompt.md +84 -0
  102. package/dist/assets/.github/prompts/spell-implement.prompt.md +101 -0
  103. package/dist/assets/.github/prompts/spell-open-session.prompt.md +116 -0
  104. package/dist/assets/.github/prompts/spell-plan.prompt.md +145 -0
  105. package/dist/assets/.github/prompts/spell-present-arcane.prompt.md +188 -0
  106. package/dist/assets/.github/prompts/spell-product-review.prompt.md +97 -0
  107. package/dist/assets/.github/prompts/spell-review-batch.prompt.md +94 -0
  108. package/dist/assets/.github/prompts/spell-review.prompt.md +131 -0
  109. package/dist/assets/.github/prompts/spell-save-idea.prompt.md +83 -0
  110. package/dist/assets/.github/prompts/spell-scope.prompt.md +263 -0
  111. package/dist/assets/.github/prompts/spell-security-review.prompt.md +129 -0
  112. package/dist/assets/.github/prompts/spell-ship.prompt.md +104 -0
  113. package/dist/assets/.github/prompts/spell-status.prompt.md +85 -0
  114. package/dist/assets/.github/prompts/spell-suggest-feature.prompt.md +110 -0
  115. package/dist/assets/.github/prompts/spell-test.prompt.md +87 -0
  116. package/dist/assets/.github/prompts/spell-todo.prompt.md +126 -0
  117. package/dist/assets/DECISIONS.md +19 -0
  118. package/dist/assets/TODO.md +7 -0
  119. package/dist/assets/agents/architecture-lead.yaml +61 -0
  120. package/dist/assets/agents/collaborator.yaml +59 -0
  121. package/dist/assets/agents/devops.yaml +60 -0
  122. package/dist/assets/agents/frontend-dev.yaml +60 -0
  123. package/dist/assets/agents/fullstack-dev.yaml +59 -0
  124. package/dist/assets/agents/marketing-strategist.yaml +60 -0
  125. package/dist/assets/agents/mobile-dev.yaml +59 -0
  126. package/dist/assets/agents/operations-comms.yaml +58 -0
  127. package/dist/assets/agents/orchestrator.yaml +60 -0
  128. package/dist/assets/agents/qa-lead.yaml +60 -0
  129. package/dist/assets/agents/research-analyst.yaml +59 -0
  130. package/dist/assets/agents/security-ops.yaml +61 -0
  131. package/dist/assets/ai-context/system-prompt-context.md +32 -0
  132. package/dist/assets/journal/.gitkeep +0 -0
  133. package/dist/index.d.ts +12 -0
  134. package/dist/index.js +2313 -0
  135. package/dist/index.js.map +1 -0
  136. package/package.json +72 -0
@@ -0,0 +1,158 @@
1
+ ---
2
+ title: Testing Standards
3
+ audience: both
4
+ last_updated: YYYY-MM-DD
5
+ status: active
6
+ tags: [testing, qa, coverage, standards, lince]
7
+ ---
8
+
9
+ # Testing Standards
10
+
11
+ Framework selection, coverage thresholds, and test evidence requirements across all your projects.
12
+
13
+ ## Executive Summary
14
+
15
+ - Every tech stack has a designated test framework — no ambiguity.
16
+ - New code requires 80% unit test coverage; critical paths require 95%.
17
+ - Lince (QA Lead) must sign off on test evidence before any ticket moves to "Resolved."
18
+ - Test evidence is required in every PR: results, coverage report, known limitations.
19
+
20
+ ---
21
+
22
+ ## Frameworks Per Stack
23
+
24
+ | Stack | Framework | Assertion Library | Runner | Who Writes | Who Validates |
25
+ |-------|-----------|------------------|--------|-----------|---------------|
26
+ | .NET 10 (backend) | xUnit | FluentAssertions | `dotnet test` | Lafayette | Lince |
27
+ | Arduino/C++ (firmware) | PlatformIO Unity | Unity assertions | `pio test` | Lafayette + a partner | Lince |
28
+ | Flutter (mobile) | flutter_test + integration_test | expect matchers | `flutter test` | Mercurio | Lince |
29
+ | Node.js (agent tools, bots) | Vitest | Vitest matchers (chai-compatible) | `npx vitest run` | Lafayette | Lince |
30
+ | Terraform (IaC) | terraform validate + Checkov | Policy-as-code rules | `checkov -d .` | Prospero | Merlin |
31
+ | Markdown docs (Arcane) | markdownlint + markdown-link-check | Lint rules | `markdownlint .` | Any agent | Prospero |
32
+
33
+ ### Why These Frameworks
34
+
35
+ - **xUnit** — .NET ecosystem default; best LLM training coverage; clean fixture model.
36
+ - **FluentAssertions** — human-readable assertions; better failure messages than Assert.
37
+ - **PlatformIO Unity** — the dominant embedded C/C++ test framework; runs on host (no hardware needed for unit tests).
38
+ - **flutter_test** — Flutter's built-in; widget testing + integration_test for full-app scenarios.
39
+ - **Vitest** — modern, fast, ESM-native; Jest-compatible API but better performance.
40
+ - **Checkov** — policy-as-code scanner for Terraform; catches security misconfigurations before apply.
41
+ - **markdownlint** — catches formatting issues, broken links, inconsistent heading levels.
42
+
43
+ ---
44
+
45
+ ## Coverage Thresholds
46
+
47
+ | Category | Minimum Coverage | Examples |
48
+ |----------|-----------------|----------|
49
+ | **Standard code** | 80% | Business logic, data access, UI components, API handlers |
50
+ | **Critical paths** | 95% | Authentication, payment processing, IoT firmware commands, calibration protocols, encryption/signing |
51
+
52
+ ### What Counts as "Critical"
53
+
54
+ - **Authentication and authorization** — login, token validation, permission checks
55
+ - **Payment processing** — any code that touches money or billing
56
+ - **IoT firmware commands** — device provisioning, calibration, OTA updates
57
+ - **Encryption and signing** — key generation, message signing, certificate validation
58
+ - **Data integrity** — database migrations, schema changes, backup/restore
59
+
60
+ ### What Doesn't Count Toward Coverage
61
+
62
+ - Auto-generated code (EF migrations, gRPC stubs, Swagger output)
63
+ - Framework boilerplate (startup.cs routing, middleware registration)
64
+ - Configuration-only files (appsettings.json, terraform.tfvars)
65
+
66
+ ---
67
+
68
+ ## Test Evidence Requirements
69
+
70
+ Every PR must include:
71
+
72
+ 1. **Test results** — pass/fail output from the test runner (screenshot or CI log link)
73
+ 2. **Coverage report** — line/branch coverage percentage (from `dotnet test --collect`, `flutter test --coverage`, etc.)
74
+ 3. **Known limitations** — document any untested edge cases or deferred scenarios
75
+ 4. **Agent attribution** — if an agent wrote the tests, include standard commit trailers
76
+
77
+ ### PR Template (Test Section)
78
+
79
+ ```markdown
80
+ ## Test Evidence
81
+
82
+ **Test runner output:**
83
+ [paste or link to CI output]
84
+
85
+ **Coverage:**
86
+ - Overall: XX%
87
+ - Critical paths: XX%
88
+
89
+ **Known limitations:**
90
+ - [any untested scenarios]
91
+
92
+ **Agent trailers:**
93
+ - Agent: [agent name]
94
+ - Model: [model]
95
+ - Provider: [provider]
96
+ ```
97
+
98
+ ---
99
+
100
+ ## Test Types
101
+
102
+ ### Unit Tests (Required)
103
+
104
+ - Test individual functions/methods in isolation
105
+ - Mock external dependencies (DB, API, hardware)
106
+ - Fast execution (< 1 second per test)
107
+ - Run on every commit and in CI
108
+
109
+ ### Integration Tests (Recommended)
110
+
111
+ - Test component interactions (API → DB, mobile → backend)
112
+ - Use real dependencies where practical (in-memory DB, test containers)
113
+ - Run in CI on PR creation and merge
114
+
115
+ ### End-to-End Tests (For UI Stories)
116
+
117
+ - Test complete user workflows
118
+ - Use browser automation (Playwright for web, Flutter integration_test for mobile)
119
+ - Run in CI on merge to main (not on every commit — too slow)
120
+
121
+ ### Firmware Tests ({BUSINESS_NAME}-Specific)
122
+
123
+ - Host-based unit tests via PlatformIO Unity (no hardware required)
124
+ - Hardware-in-the-loop tests for calibration validation (requires physical device)
125
+ - BLE protocol tests via mock transport
126
+
127
+ ---
128
+
129
+ ## Quality Gate in Ticket Lifecycle
130
+
131
+ Adapt the ticket lifecycle policy to your tracker:
132
+
133
+ The **Code Review → QA** transition now requires:
134
+
135
+ 1. All unit tests pass (CI green)
136
+ 2. Coverage meets thresholds (80% standard / 95% critical)
137
+ 3. No HIGH-severity review findings unresolved
138
+ 4. Lince signs off with test evidence linked to the work item
139
+
140
+ The **QA → Resolved** transition requires:
141
+
142
+ 1. Integration tests pass (if applicable)
143
+ 2. Manual verification for UI stories (screenshot or recording)
144
+ 3. Known limitations documented in work item
145
+ 4. Lince marks ticket as validated
146
+
147
+ ---
148
+
149
+ ## Agent Responsibilities
150
+
151
+ | Agent | Testing Role |
152
+ |-------|-------------|
153
+ | **Lafayette** | Writes unit + integration tests for .NET backend, Node.js tools, firmware |
154
+ | **Mercurio** | Writes unit + widget + integration tests for mobile (Flutter) |
155
+ | **Adelaide** | Writes unit + E2E tests for frontend (Blazor/React) |
156
+ | **Lince** | Validates all test evidence; signs off on QA gates; runs adversarial test review |
157
+ | **Prospero** | Maintains CI pipelines that run tests; configures Checkov for Terraform; maintains markdownlint config |
158
+ | **Merlin** | Reviews test architecture decisions; validates Terraform policy compliance |
@@ -0,0 +1,104 @@
1
+ ---
2
+ title: Threat Model
3
+ audience: both
4
+ last_updated: YYYY-MM-DD
5
+ status: draft
6
+ distributable: true
7
+ tags: [security, threat-model]
8
+ ---
9
+
10
+ # Threat Model
11
+
12
+ > **Status:** Draft — expand this document as your environment evolves.
13
+
14
+ ## Executive Summary
15
+
16
+ - The primary risk is autonomous agent misuse or compromise on a host that also holds sensitive data.
17
+ - Core mitigations are full-disk encryption, least-privilege execution, a loopback-bound gateway, and network isolation via tunnel/VPN.
18
+ - This file defines what must be protected, who/what could attack it, and where controls must be applied.
19
+ - Security decisions here map directly to the hardening checklist and authentication strategy.
20
+
21
+ See also: [Hardening Checklist](hardening-checklist.md), [Authentication Strategy](authentication-strategy.md)
22
+
23
+ ---
24
+
25
+ ## Assets to Protect
26
+
27
+ | Asset | Value | Location |
28
+ |-------|-------|----------|
29
+ | Local sensitive data | Personal files, documents, custom apps | Primary local disk |
30
+ | Business credentials | API keys, payment-processor accounts, marketplace accounts | Secret store |
31
+ | Customer data | Order info, contact details | To be defined per platform |
32
+
33
+ ---
34
+
35
+ ## Threat Actors
36
+
37
+ - **Compromised AI agent (the runtime or its dependencies):** An autonomous agent with shell access could enumerate drives, exfiltrate data, or escalate privileges.
38
+ - **Supply-chain attack:** A compromised package or model pulled by the runtime acts maliciously.
39
+ - **Network attacker:** Exploits exposed services on the agent host.
40
+
41
+ ---
42
+
43
+ ## Attack Surfaces
44
+
45
+ | Surface | Status | Mitigation |
46
+ |---------|--------|------------|
47
+ | Sensitive local drive accessible from another OS | **Mitigated** | Full-disk encryption renders the drive unreadable from a different OS or a stolen disk |
48
+ | Agent runtime with shell access | **Partially mitigated** | Runs as a non-root user; loopback-only bind; token auth. Tool hardening (exec/fs restrictions) pending. |
49
+ | Network exposure on the agent host | **Mitigated** | Gateway bound to loopback only. An encrypted tunnel/VPN is the only remote-access path. No ports open on the LAN. |
50
+ | Supply chain (package installs) | **Mitigated** | Global package installs use a user-owned directory, not a system directory. No `sudo` during install. |
51
+ | Inter-machine communication | **Mitigated** | Encrypted mesh tunnel/VPN. No direct unencrypted LAN communication. |
52
+ | Token/credential exposure | **Mitigated** | Token stored as an env var in a `.env` file. Config uses a secret reference, not plaintext. State directory is mode `700`. |
53
+
54
+ ---
55
+
56
+ ## Mitigations Completed
57
+
58
+ - [ ] Full-disk encryption on drives holding sensitive data
59
+ - [ ] Gateway: loopback bind, token via secret reference, encrypted tunnel/VPN for remote access
60
+ - [ ] Package supply chain: user-owned global directory, no `sudo`
61
+ - [ ] State directory permissions set to `700`
62
+ - [ ] Runtime security audit: zero critical issues
63
+
64
+ ## Mitigations In Progress
65
+
66
+ - [ ] Agent policies: define allowed/denied actions per agent
67
+ - [ ] Tool hardening: restrict exec, filesystem scope, control-plane access
68
+ - [ ] Host security hardening checklist (see [Hardening Checklist](hardening-checklist.md))
69
+ - [ ] Network ACL review — confirm only expected devices reach the gateway
70
+
71
+ ---
72
+
73
+ ## Collaborator Access Policy
74
+
75
+ This policy defines which collaborators can access which project data. Enforce boundaries at the source-control/project level and document scope explicitly to prevent drift.
76
+
77
+ ### Privacy Levels
78
+
79
+ | Level | Description | Who Can See |
80
+ |-------|-------------|-------------|
81
+ | **Public** | Intended for open sharing | Anyone |
82
+ | **Shared** | Cross-collaborator projects | Named collaborators only |
83
+ | **Business-Private** | Single-business operational data | Business co-owners only |
84
+ | **System-Private** | Infrastructure, credentials, security config | Owner only |
85
+
86
+ ### Collaborator Scope Assignments
87
+
88
+ | Collaborator | Access Level | Explicit Scope | Block From |
89
+ |---|---|---|---|
90
+ | **Owner** | System-Private | All projects and infrastructure | N/A — owner |
91
+ | **Operations Co-Owner** | Business-Private | A single business's data, operations, finances | All other businesses; all infrastructure |
92
+ | **Partner** | Shared | A single business only (via a dedicated org) | Other businesses and all system config |
93
+
94
+ ### Enforcement
95
+
96
+ - Project-level isolation is the primary boundary: each business is a separate project with its own access control.
97
+ - A partner's access is limited to a single business's project, through a dedicated org only.
98
+ - An operations co-owner receives access only to their business's project and relevant platform accounts — not to infrastructure configs.
99
+ - System-level and multi-business reference documentation stays private to the owner unless explicitly shared.
100
+ - New collaborator access requires an explicit entry in this table and an entry in the security audit log.
101
+
102
+ ---
103
+
104
+ *Document your runtime's execution model here as your environment is finalized: which user account it runs as, how shell access is scoped, and which model provider performs inference.*
@@ -0,0 +1,108 @@
1
+ ---
2
+ title: Universal Agent Rules — Single Source of Truth
3
+ audience: ai
4
+ status: active
5
+ tags: [rules, governance, ai-agents, multi-client]
6
+ ---
7
+
8
+ # Universal Agent Rules
9
+
10
+ These rules apply to **every AI agent and tool** working in this repository, regardless of client (GitHub Copilot, Claude Code, Codex, your agent runtime, or any future tool). This file is the canonical source; client-specific instruction files reference this document and add client-specific behavior on top.
11
+
12
+ See also: [[README]], [[DECISIONS]], [[governance/git-conventions|Git Conventions]], [[agents/agent-policies|Agent Policies]].
13
+
14
+ ---
15
+
16
+ ## Non-Negotiable Safety Rules
17
+
18
+ 1. **Never access an encrypted or cross-OS volume you are not authorized to touch.** Do not suggest, execute, or recommend any action that would mount, read, or probe a drive outside the agent's authorized environment. This rule stands as defense-in-depth regardless of encryption status.
19
+
20
+ 2. **No root commands without justification.** Do not generate or suggest commands that run as root unless explicitly scoped and justified. The agent runtime should run as a dedicated non-root user by design. See [[security/hardening-checklist|Hardening Checklist]].
21
+
22
+ 3. **No secrets on the command line.** Never pass API keys, tokens, or secrets on the command line, in chat, or in config files. Use SecretRef (env vars) and `read -s` for interactive input.
23
+
24
+ 4. **This is a production system.** No "fix it later" shortcuts. No experimental changes without rollback plans.
25
+
26
+ ---
27
+
28
+ ## Documentation Rules
29
+
30
+ 5. **Update `last_updated` frontmatter** whenever you edit a document. Every document must have YAML frontmatter with `audience`, `status`, `last_updated`, and `tags`.
31
+
32
+ 6. **Log significant decisions in [[DECISIONS]].** Use the next sequential ADR number. Format: Date, Status, Context, Decision, Reasoning, Rejected alternatives.
33
+
34
+ 7. **Use wiki-links for cross-references** (e.g., `[[DECISIONS#ADR-NNN|Short Title]]`, `[[journal/YYYY-MM-DD-topic-slug|Session Label]]`). This enables knowledge graph visualization.
35
+
36
+ 8. **Use Mermaid for diagrams** (` ```mermaid ` blocks) for all flow charts, architecture diagrams, and sequence diagrams. Directory trees stay as plain code blocks.
37
+
38
+ 9. **Journal files use date-prefix naming:** `journal/YYYY-MM-DD-topic-slug.md` for chronological sorting.
39
+
40
+ ---
41
+
42
+ ## Git Rules
43
+
44
+ 10. **Never auto-commit during interactive sessions.** Stage changes and present the proposed commit message for human approval before executing `git commit`. This applies to Copilot, Claude Code, Codex, and any other interactive AI tool. The human decides when to commit. Exception: autonomous agents at Magus+ power level may self-commit within approved scope.
45
+
46
+ 11. **Use Conventional Commits format** for all commit messages: `type(scope): description`. See [[governance/git-conventions|Git Conventions]] for types, scopes, and examples.
47
+
48
+ 12. **Agent attribution trailers** are required on agent-authored commits (`Agent`, `Model`, `Provider`). See [[governance/git-conventions#agent-attribution-model|Attribution Model]].
49
+
50
+ 13. **For runtime config changes** (anything touching the agent runtime's config files or service restarts): do NOT commit supporting docs until the user has confirmed the change is working. Stage and present — but wait for explicit approval after testing.
51
+
52
+ 14. **Never commit directly to main.** All work — human or agent — happens on topic branches. Humans use `type/short-description`; agents use `{agent-slug}/type/short-description`. Main receives changes only through PR completion, not local direct merges. See [[governance/git-conventions#branch-discipline|Branch Discipline]].
53
+
54
+ ---
55
+
56
+ ## Recommendation Guardrails (ADR-034)
57
+
58
+ 15. **Flag actionable recommendations.** Any recommendation that could lead to a purchase, subscription, account creation, or irreversible action must: (a) be flagged explicitly, (b) use verified current information — never assume or fabricate, (c) present free/no-cost alternatives when they exist, (d) state confidence level if based on general knowledge. For >$50 or contracts, require explicit confirmation. See [[agents/agent-policies#actionable-recommendation-policy-adr-034|Full Policy]].
59
+
60
+ ---
61
+
62
+ ## Screenshot Curation
63
+
64
+ 15. **Curate screenshots — not every screenshot needs saving.** Use these heuristics:
65
+ - **Save** when it shows a completed setup, config state, UI result, or evidence of a problem/fix.
66
+ - **Save** when the user explicitly says "save this" or "add this to docs."
67
+ - **Save key decision points and final states** in multi-step flows; skip intermediate steps.
68
+ - **Don't save** external reference material, transient troubleshooting, or items marked "just for reference."
69
+ - **When ambiguous, save it** — easier to delete than to re-paste.
70
+ - Saved screenshots go to `assets/screenshots/YYYY-MM-DD/` with descriptive lowercase-with-dashes filenames.
71
+ - Never save screenshots containing secrets, API keys, tokens, or PII.
72
+
73
+ ---
74
+
75
+ ## Naming Conventions
76
+
77
+ 16. **Three naming tiers — never mix them:**
78
+
79
+ | Tier | What | Style | Examples |
80
+ |------|------|-------|---------|
81
+ | Machines | Physical hardware | Iconic character names | Atlas, Voyager |
82
+ | AI Agents | Autonomous agents | Persona name + role title | Merlin — CTO, Kellar — Product Ops |
83
+ | Systems/Services | DBs, APIs, tools | Functional `[slug]-[function]` | `inventory-api`, `orders-worker` |
84
+
85
+ 17. **Projects and repos follow a consistent naming convention.** Pick one (TitleCase or kebab-case) and apply it uniformly across your org.
86
+
87
+ ---
88
+
89
+ ## Operational Rules
90
+
91
+ 18. **TODO.md is a scratchpad.** Resolved items move to the relevant doc, then get deleted from TODO.md.
92
+
93
+ 19. **After any onboarding or config wizard**, re-validate authentication and network-exposure settings — wizards can silently downgrade security settings.
94
+
95
+ 20. **For repo path requests**, perform read-only discovery before claiming "no access." Use [[agents/agent-approved-paths|Agent Approved Paths Registry]].
96
+
97
+ ---
98
+
99
+ ## Client-Specific Instruction Locations
100
+
101
+ | Client | Instruction File | Notes |
102
+ |--------|-----------------|-------|
103
+ | GitHub Copilot | `.github/copilot-instructions.md` | Auto-loaded by Copilot in workspace |
104
+ | Claude Code (CLI) | `CLAUDE.md` | Auto-loaded by Claude Code in repo root |
105
+ | Codex | `AGENTS.md` | Auto-loaded by Codex in repo root |
106
+ | Your agent runtime | [[agents/agent-policies]] | Loaded via agent config |
107
+ | Ad-hoc chat clients | [[ai-context/portable-bootstrap]] | Copy-paste into conversation |
108
+ | Any new tool | This file | Read this, then follow links above |
@@ -0,0 +1,140 @@
1
+ # Adelaide — Avatar Image Generation Prompt
2
+
3
+ **Character:** Adelaide, the Illusionist
4
+ **Namesake:** Adelaide Herrmann (1853–1932), Queen of Magic — public domain
5
+ **Arcane Role:** Frontend Developer (frontend-dev)
6
+ **Ethnicity:** White female (British-born)
7
+
8
+ ---
9
+
10
+ ## Image Generation Prompt
11
+
12
+ ```
13
+ Photorealistic portrait of a poised White female grand-stage illusionist.
14
+ Silver-streaked auburn hair swept up in a belle-époque style. High-collared
15
+ stage gown in deep plum threaded with fine luminous circuitry that reads as
16
+ embroidery until it glows. She conjures a floating user interface the way a
17
+ magician produces doves from a silk scarf — translucent UI panels blooming
18
+ elegantly from a gesture of one gloved hand. Composed, unshakable grace: she
19
+ performed the bullet catch and took the bow. Plum, silver and soft gold
20
+ palette. Grand theatre background, cinematic lighting. Square 1:1 avatar.
21
+ ```
22
+
23
+ ## Safe Version
24
+
25
+ ```
26
+ Photorealistic portrait of a poised White female illusionist with
27
+ silver-streaked auburn hair swept up, high-collared deep plum stage gown
28
+ with fine glowing circuitry embroidery, translucent interface panels
29
+ blooming from her gloved hand like doves from a scarf, grand theatre
30
+ background, cinematic lighting. Square 1:1 avatar.
31
+ ```
32
+
33
+ ## Character Notes
34
+
35
+ - **Build:** Elegant, upright stage bearing; command through composure
36
+ - **Skin:** Fair; photorealistic texture with natural age grace, no smoothing
37
+ - **Hair:** Auburn with silver streaks, swept up — the Queen of Magic, mid-career and in charge
38
+ - **Wardrobe:** Belle-époque high-collared gown, plum with luminous circuit embroidery; silk gloves
39
+ - **Signature element:** UI panels produced like stage doves — the grand stage picture is the interface
40
+ - **Expression:** Serene certainty; grace under literal fire
41
+ - **Focal element:** The blooming interface at her fingertips
42
+ - **Digital layer:** Stage-light bokeh that resolves into design-grid guides
43
+
44
+ ## Palette
45
+
46
+ | Token | Hex | Usage |
47
+ | ---------- | --------- | ------------------------------ |
48
+ | Gown | `#4b2545` | Deep plum base |
49
+ | Circuit | `#e3c46b` | Luminous embroidery, soft gold |
50
+ | Panels | `#9fd4e8` | Translucent UI blooms |
51
+ | Hair | `#7a4a35` | Auburn with silver streaks |
52
+ | Background | `#171020` | Grand theatre darkness |
53
+
54
+ ## Negative Prompts
55
+
56
+ ```
57
+ wings, insect motif, powered armor, spandex costume, young ingenue, cartoon,
58
+ anime, franchise emblems, chest insignia, rifle, gun, sad, fragile,
59
+ text, watermark
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Image Types
65
+
66
+ ### Portrait — Studio Headshot (1:1 square)
67
+
68
+ Tight crop on face and upper shoulders. Clean dark gradient background, even soft studio lighting; soft gold glow from the collar circuitry only. **1:1 square format.**
69
+
70
+ ```
71
+ Poised White female grand-stage illusionist portrait, chest-up tight crop, silver-streaked auburn hair swept up, serene certain expression, high plum collar with fine glowing gold circuit embroidery, soft gold uplight from collar, photorealistic skin texture, no smoothing, dark gradient background, square 1:1 format, no text, no watermark.
72
+ ```
73
+
74
+ ### Full Body — Environmental Character Intro (2:3 portrait tall)
75
+
76
+ Center stage of a grand theatre, the full stage picture hers: translucent interface panels rising like scenery, layout grids as limelight beams — the part of the show the audience actually sees, staged to perfection. **2:3 portrait tall — full body head to shoes visible.**
77
+
78
+ ```
79
+ Full-body character concept render, poised White female illusionist center stage in a grand gilded theatre, high-collared deep plum gown with luminous circuit embroidery, gloved hands raised mid-flourish releasing translucent UI panels that flutter upward like doves, design-grid limelight beams crossing the stage, photorealistic skin texture, entire body visible from head to heeled shoes, plum-silver-gold palette, golden-age poster composition, cinematic lighting, 2:3 portrait tall format, no text, no watermark.
80
+ ```
81
+
82
+ ### Poster Shot — Cinematic Frame (16:9 widescreen landscape)
83
+
84
+ The bullet catch, restaged for software: she stands unflinching as a breaking change streaks toward her in light, caught in a gloved hand before a gasping holographic audience. **16:9 widescreen landscape.**
85
+
86
+ ```
87
+ Epic horizontal landscape poster shot, 16:9 widescreen cinematic composition, White female illusionist standing unflinching in right third of a grand theatre stage, one gloved hand catching a streak of red light mid-air, translucent interface scenery towering across the frame, holographic audience silhouettes below, volumetric limelight shafts, atmospheric dust, lens bloom, dramatic high-contrast lighting, blockbuster film-grade color grading, golden-age lithograph poster energy, 16:9 landscape format, no text, no watermark.
88
+ ```
89
+
90
+ ### T-Pose Turnaround (Meshy 3D pipeline)
91
+
92
+ **Meshy Export Height: 175 cm** (Origin: Bottom) — elegant stage presence.
93
+
94
+ Three separate images (front, right side, back), plain neutral gray background (#808080), flat even lighting, no panels, no glow, gown in stable state. **Arms fully extended — hands and fingertips completely in frame.**
95
+
96
+ **T-Pose Front:**
97
+
98
+ ```
99
+ Full body front view, T-pose — arms extended horizontally, legs shoulder-width apart. Poised White female, silver-streaked auburn hair swept up. High-collared deep plum stage gown with fine gold embroidery in inactive state, silk gloves, heeled shoes visible under hem. No holograms, no effects. Hands open with fingers relaxed. Plain neutral gray background (#808080). Flat even studio lighting, no directional shadows. Arms fully extended — hands and fingertips completely in frame, not cropped. Facing directly forward toward camera. 3D model reference sheet.
100
+ ```
101
+
102
+ **T-Pose Right Side / Back:** same specification, strict 90° right profile (zero 3/4 rotation) and directly-away back view; gown train and back embroidery visible.
103
+
104
+ ### A-Pose Turnaround (alternate)
105
+
106
+ Same rules with arms at ~45° (A-pose), three separate images, if T-pose fails rigging or clips the gown sleeves.
107
+
108
+ ---
109
+
110
+ ## Animations
111
+
112
+ ### Shared Base Set (all agents)
113
+
114
+ - `Idle` (action_id: 0)
115
+ - `Casual_Walk` (action_id: 30)
116
+ - `Run_02` (action_id: 14)
117
+ - `Agree_Gesture` (action_id: 25)
118
+ - `Idle_02` (action_id: 11)
119
+ - `Talk_Passionately` (action_id: 308)
120
+ - `Big_Wave_Hello` (action_id: 28)
121
+ - `Victory_Cheer` (action_id: 59)
122
+ - `Confused_Scratch` (action_id: 36)
123
+
124
+ ### Character-Specific Picks (Meshy)
125
+
126
+ - Celebration: `Victory_Cheer` (action_id: 59) — the earned bow
127
+ - Signature: `Big_Wave_Hello` (action_id: 28) — the stage flourish
128
+ - Walk override: `default`
129
+
130
+ ### Selection Rationale
131
+
132
+ Every motion is staged; the audience sees exactly what she intends, nothing else.
133
+
134
+ ### Exclusions
135
+
136
+ Do not select weapon-carrying animations (Gun, Rifle, Shoot, Reload, Grenade, Bow_Aimed).
137
+
138
+ ### Master Reference
139
+
140
+ See dark-matter-complex/docs/animation-spec.md for the full cross-character mapping.
@@ -0,0 +1,138 @@
1
+ # Alexander — Avatar Image Generation Prompt
2
+
3
+ **Character:** Alexander, the Man Who Knows
4
+ **Namesake:** Alexander (Claude Alexander Conlin, 1880–1954), headline mentalist — the name itself is ancient and unownable
5
+ **Arcane Role:** Research & Backlog Analyst (research-analyst)
6
+ **Ethnicity:** White male (American)
7
+
8
+ ---
9
+
10
+ ## Image Generation Prompt
11
+
12
+ ```
13
+ Photorealistic portrait of a composed White male mentalist-analyst in the
14
+ classic golden-age poster style. Jeweled turban with a single cabochon over
15
+ the brow, formal dark suit with a high collar. One hand resting on a glowing
16
+ crystal ball that streams charts, trend lines and cited sources instead of
17
+ smoke. Sealed envelopes float at the edge of frame, each tagged with a
18
+ glowing question mark resolving into an answer. Calm, knowing, faintly
19
+ amused certainty. Deep indigo and gold palette. Dark background, cinematic
20
+ lighting. Square 1:1 avatar.
21
+ ```
22
+
23
+ ## Safe Version
24
+
25
+ ```
26
+ Photorealistic portrait of a composed White male in a jeweled turban and
27
+ formal dark suit, hand resting on a glowing crystal ball streaming charts
28
+ and source citations, floating sealed envelopes resolving into answers,
29
+ deep indigo and gold palette, dark background. Square 1:1 avatar.
30
+ ```
31
+
32
+ ## Character Notes
33
+
34
+ - **Build:** Composed, still, upright — a headliner's presence without theatrics
35
+ - **Skin:** Fair; photorealistic texture, no smoothing
36
+ - **Wardrobe:** The classic mentalist poster look — jeweled turban, formal dark suit; played straight, not costume
37
+ - **Signature element:** The crystal ball that streams *data* — divination with citations
38
+ - **Expression:** The Man Who Knows: calm certainty, one eyebrow of amusement
39
+ - **Focal element:** Sealed question envelopes resolving into answers
40
+ - **Digital layer:** Trend lines and confidence intervals orbiting the crystal
41
+
42
+ ## Palette
43
+
44
+ | Token | Hex | Usage |
45
+ | ---------- | --------- | ------------------------------ |
46
+ | Suit | `#1c1b26` | Formal dark base |
47
+ | Indigo | `#3a3f8c` | Turban, crystal depths |
48
+ | Gold | `#d4af37` | Jewel, trim, envelope seals |
49
+ | Data | `#7fd1c9` | Charts, citations, trends |
50
+ | Background | `#0e0d16` | Deep stage darkness |
51
+
52
+ ## Negative Prompts
53
+
54
+ ```
55
+ android, synthetic skin, forehead gem robot, cape, levitating body, cartoon,
56
+ anime, franchise emblems, chest insignia, crystal ball with smoke skull,
57
+ occult sigils, sinister, text, watermark
58
+ ```
59
+
60
+ ---
61
+
62
+ ## Image Types
63
+
64
+ ### Portrait — Studio Headshot (1:1 square)
65
+
66
+ Tight crop on face and upper shoulders. Clean dark gradient background, even soft studio lighting; soft indigo uplight from the crystal only. **1:1 square format.**
67
+
68
+ ```
69
+ Composed White male mentalist-analyst portrait, chest-up tight crop, jeweled indigo turban with gold cabochon, formal dark suit with high collar, calm knowing expression with faint amusement, soft indigo uplight from below as if from a crystal ball out of frame, photorealistic skin texture, no smoothing, dark gradient background, square 1:1 format, no text, no watermark.
70
+ ```
71
+
72
+ ### Full Body — Environmental Character Intro (2:3 portrait tall)
73
+
74
+ In his reading room — walls of sealed question envelopes, a desk bearing the crystal ball streaming research: charts, sources, verdicts. His entire act was answering sealed written questions; the backlog is just the modern envelope. **2:3 portrait tall — full body head to shoes visible.**
75
+
76
+ ```
77
+ Full-body character concept render, composed White male mentalist-analyst standing at a desk in a study lined with walls of sealed envelopes, jeweled turban and formal dark suit, one hand on a large crystal ball streaming glowing charts and cited sources upward, envelopes detaching from the walls and resolving into answered cards around him, photorealistic skin texture, entire body visible from head to polished shoes, indigo and gold palette, golden-age mentalist poster composition, cinematic lighting, 2:3 portrait tall format, no text, no watermark.
78
+ ```
79
+
80
+ ### Poster Shot — Cinematic Frame (16:9 widescreen landscape)
81
+
82
+ "The Man Who Knows" — the classic one-man poster staged wide: the gaze, the crystal, and a panorama of questions becoming answers across the frame. **16:9 widescreen landscape.**
83
+
84
+ ```
85
+ Epic horizontal landscape poster shot, 16:9 widescreen cinematic composition, White male mentalist-analyst in right third gazing directly at the viewer, jeweled turban, hand on crystal ball erupting a panorama of charts, timelines and cited sources across the full width, sealed envelopes streaming toward the crystal and leaving as answered cards, volumetric indigo light, atmospheric particles, lens bloom, dramatic high-contrast lighting, blockbuster film-grade color grading, golden-age lithograph poster energy, 16:9 landscape format, no text, no watermark.
86
+ ```
87
+
88
+ ### T-Pose Turnaround (Meshy 3D pipeline)
89
+
90
+ **Meshy Export Height: 182 cm** (Origin: Bottom) — headliner posture, nothing exaggerated.
91
+
92
+ Three separate images (front, right side, back), plain neutral gray background (#808080), flat even lighting, no crystal, no envelopes, no glow. **Arms fully extended — hands and fingertips completely in frame.**
93
+
94
+ **T-Pose Front:**
95
+
96
+ ```
97
+ Full body front view, T-pose — arms extended horizontally, legs shoulder-width apart. Composed White male, jeweled indigo turban with gold cabochon, clean-shaven. Formal dark high-collared suit, polished shoes. No crystal ball, no held objects, no effects. Hands open with fingers relaxed. Plain neutral gray background (#808080). Flat even studio lighting, no directional shadows. Arms fully extended — hands and fingertips completely in frame, not cropped. Facing directly forward toward camera. 3D model reference sheet.
98
+ ```
99
+
100
+ **T-Pose Right Side / Back:** same specification, strict 90° right profile (zero 3/4 rotation) and directly-away back view; turban wrap visible from behind.
101
+
102
+ ### A-Pose Turnaround (alternate)
103
+
104
+ Same rules with arms at ~45° (A-pose), three separate images, if T-pose fails rigging at the shoulders.
105
+
106
+ ---
107
+
108
+ ## Animations
109
+
110
+ ### Shared Base Set (all agents)
111
+
112
+ - `Idle` (action_id: 0)
113
+ - `Casual_Walk` (action_id: 30)
114
+ - `Run_02` (action_id: 14)
115
+ - `Agree_Gesture` (action_id: 25)
116
+ - `Idle_02` (action_id: 11)
117
+ - `Talk_Passionately` (action_id: 308)
118
+ - `Big_Wave_Hello` (action_id: 28)
119
+ - `Victory_Cheer` (action_id: 59)
120
+ - `Confused_Scratch` (action_id: 36)
121
+
122
+ ### Character-Specific Picks (Meshy)
123
+
124
+ - Celebration: `Agree_Gesture` (action_id: 25) — he already knew
125
+ - Signature: `Idle_02` (action_id: 11) — the reading pose
126
+ - Walk override: `default`
127
+
128
+ ### Selection Rationale
129
+
130
+ Certainty is still; the answer arrives before the movement does.
131
+
132
+ ### Exclusions
133
+
134
+ Do not select weapon-carrying animations (Gun, Rifle, Shoot, Reload, Grenade, Bow_Aimed).
135
+
136
+ ### Master Reference
137
+
138
+ See dark-matter-complex/docs/animation-spec.md for the full cross-character mapping.