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.
- package/LICENSE +21 -0
- package/README.md +253 -0
- package/dist/assets/.arcane/agents/agent-policies-template.md +414 -0
- package/dist/assets/.arcane/governance/agent-approved-paths.md +60 -0
- package/dist/assets/.arcane/governance/agent-policies.md +414 -0
- package/dist/assets/.arcane/governance/agent-work-queue-model.md +61 -0
- package/dist/assets/.arcane/governance/authentication-strategy.md +220 -0
- package/dist/assets/.arcane/governance/cicd-standards.md +227 -0
- package/dist/assets/.arcane/governance/decision-documentation-standard.md +335 -0
- package/dist/assets/.arcane/governance/development-methodology.md +384 -0
- package/dist/assets/.arcane/governance/git-conventions.md +759 -0
- package/dist/assets/.arcane/governance/hardening-checklist.md +117 -0
- package/dist/assets/.arcane/governance/naming-conventions.md +142 -0
- package/dist/assets/.arcane/governance/new-business-setup.md +182 -0
- package/dist/assets/.arcane/governance/poc-management-pattern.md +190 -0
- package/dist/assets/.arcane/governance/portable-bootstrap.md +101 -0
- package/dist/assets/.arcane/governance/product-excellence-standards.md +211 -0
- package/dist/assets/.arcane/governance/rca-process-standard.md +157 -0
- package/dist/assets/.arcane/governance/spell-authoring-standards.md +129 -0
- package/dist/assets/.arcane/governance/testing-standards.md +158 -0
- package/dist/assets/.arcane/governance/threat-model.md +104 -0
- package/dist/assets/.arcane/governance/universal-agent-rules.md +108 -0
- package/dist/assets/.arcane/image-prompts/adelaide-image-prompt.md +140 -0
- package/dist/assets/.arcane/image-prompts/alexander-image-prompt.md +138 -0
- package/dist/assets/.arcane/image-prompts/bess-image-prompt.md +139 -0
- package/dist/assets/.arcane/image-prompts/circe-image-prompt.md +143 -0
- package/dist/assets/.arcane/image-prompts/custodio-image-prompt.md +140 -0
- package/dist/assets/.arcane/image-prompts/iris-image-prompt.md +139 -0
- package/dist/assets/.arcane/image-prompts/kellar-image-prompt.md +141 -0
- package/dist/assets/.arcane/image-prompts/lafayette-image-prompt.md +140 -0
- package/dist/assets/.arcane/image-prompts/lince-image-prompt.md +142 -0
- package/dist/assets/.arcane/image-prompts/mercurio-image-prompt.md +140 -0
- package/dist/assets/.arcane/image-prompts/merlin-image-prompt.md +139 -0
- package/dist/assets/.arcane/image-prompts/prospero-image-prompt.md +141 -0
- package/dist/assets/.arcane/templates/venture-template/overview.md +66 -0
- package/dist/assets/.claude/commands/spell-address-review.md +9 -0
- package/dist/assets/.claude/commands/spell-arcane-version.md +9 -0
- package/dist/assets/.claude/commands/spell-architect.md +9 -0
- package/dist/assets/.claude/commands/spell-bootstrap-business.md +9 -0
- package/dist/assets/.claude/commands/spell-brainstorm.md +9 -0
- package/dist/assets/.claude/commands/spell-bug.md +9 -0
- package/dist/assets/.claude/commands/spell-bump.md +9 -0
- package/dist/assets/.claude/commands/spell-check-drift.md +9 -0
- package/dist/assets/.claude/commands/spell-close-session.md +9 -0
- package/dist/assets/.claude/commands/spell-commit-work.md +9 -0
- package/dist/assets/.claude/commands/spell-create-pull-request.md +9 -0
- package/dist/assets/.claude/commands/spell-document.md +9 -0
- package/dist/assets/.claude/commands/spell-dotnet-expert.md +9 -0
- package/dist/assets/.claude/commands/spell-eas-ios-deploy.md +9 -0
- package/dist/assets/.claude/commands/spell-enchant.md +9 -0
- package/dist/assets/.claude/commands/spell-explain-concept.md +9 -0
- package/dist/assets/.claude/commands/spell-feedback.md +9 -0
- package/dist/assets/.claude/commands/spell-full-cycle.md +9 -0
- package/dist/assets/.claude/commands/spell-generate-bot-icons.md +9 -0
- package/dist/assets/.claude/commands/spell-implement.md +9 -0
- package/dist/assets/.claude/commands/spell-open-session.md +9 -0
- package/dist/assets/.claude/commands/spell-plan.md +9 -0
- package/dist/assets/.claude/commands/spell-present-arcane.md +9 -0
- package/dist/assets/.claude/commands/spell-product-review.md +9 -0
- package/dist/assets/.claude/commands/spell-review-batch.md +9 -0
- package/dist/assets/.claude/commands/spell-review.md +9 -0
- package/dist/assets/.claude/commands/spell-save-idea.md +9 -0
- package/dist/assets/.claude/commands/spell-scope.md +9 -0
- package/dist/assets/.claude/commands/spell-security-review.md +9 -0
- package/dist/assets/.claude/commands/spell-ship.md +9 -0
- package/dist/assets/.claude/commands/spell-status.md +9 -0
- package/dist/assets/.claude/commands/spell-suggest-feature.md +9 -0
- package/dist/assets/.claude/commands/spell-test.md +9 -0
- package/dist/assets/.claude/commands/spell-todo.md +9 -0
- package/dist/assets/.github/agents/adelaide.agent.md +44 -0
- package/dist/assets/.github/agents/alexander.agent.md +43 -0
- package/dist/assets/.github/agents/bess.agent.md +42 -0
- package/dist/assets/.github/agents/circe.agent.md +43 -0
- package/dist/assets/.github/agents/custodio.agent.md +44 -0
- package/dist/assets/.github/agents/iris.agent.md +43 -0
- package/dist/assets/.github/agents/kellar.agent.md +43 -0
- package/dist/assets/.github/agents/lafayette.agent.md +42 -0
- package/dist/assets/.github/agents/lince.agent.md +43 -0
- package/dist/assets/.github/agents/mercurio.agent.md +43 -0
- package/dist/assets/.github/agents/merlin.agent.md +44 -0
- package/dist/assets/.github/agents/prospero.agent.md +43 -0
- package/dist/assets/.github/instructions/agent-output.instructions.md +48 -0
- package/dist/assets/.github/prompts/spell-address-review.prompt.md +114 -0
- package/dist/assets/.github/prompts/spell-arcane-version.prompt.md +82 -0
- package/dist/assets/.github/prompts/spell-architect.prompt.md +116 -0
- package/dist/assets/.github/prompts/spell-bootstrap-business.prompt.md +73 -0
- package/dist/assets/.github/prompts/spell-brainstorm.prompt.md +124 -0
- package/dist/assets/.github/prompts/spell-bug.prompt.md +109 -0
- package/dist/assets/.github/prompts/spell-bump.prompt.md +73 -0
- package/dist/assets/.github/prompts/spell-check-drift.prompt.md +97 -0
- package/dist/assets/.github/prompts/spell-close-session.prompt.md +189 -0
- package/dist/assets/.github/prompts/spell-commit-work.prompt.md +211 -0
- package/dist/assets/.github/prompts/spell-create-pull-request.prompt.md +170 -0
- package/dist/assets/.github/prompts/spell-document.prompt.md +83 -0
- package/dist/assets/.github/prompts/spell-dotnet-expert.prompt.md +117 -0
- package/dist/assets/.github/prompts/spell-eas-ios-deploy.prompt.md +183 -0
- package/dist/assets/.github/prompts/spell-enchant.prompt.md +385 -0
- package/dist/assets/.github/prompts/spell-explain-concept.prompt.md +69 -0
- package/dist/assets/.github/prompts/spell-feedback.prompt.md +113 -0
- package/dist/assets/.github/prompts/spell-full-cycle.prompt.md +201 -0
- package/dist/assets/.github/prompts/spell-generate-bot-icons.prompt.md +84 -0
- package/dist/assets/.github/prompts/spell-implement.prompt.md +101 -0
- package/dist/assets/.github/prompts/spell-open-session.prompt.md +116 -0
- package/dist/assets/.github/prompts/spell-plan.prompt.md +145 -0
- package/dist/assets/.github/prompts/spell-present-arcane.prompt.md +188 -0
- package/dist/assets/.github/prompts/spell-product-review.prompt.md +97 -0
- package/dist/assets/.github/prompts/spell-review-batch.prompt.md +94 -0
- package/dist/assets/.github/prompts/spell-review.prompt.md +131 -0
- package/dist/assets/.github/prompts/spell-save-idea.prompt.md +83 -0
- package/dist/assets/.github/prompts/spell-scope.prompt.md +263 -0
- package/dist/assets/.github/prompts/spell-security-review.prompt.md +129 -0
- package/dist/assets/.github/prompts/spell-ship.prompt.md +104 -0
- package/dist/assets/.github/prompts/spell-status.prompt.md +85 -0
- package/dist/assets/.github/prompts/spell-suggest-feature.prompt.md +110 -0
- package/dist/assets/.github/prompts/spell-test.prompt.md +87 -0
- package/dist/assets/.github/prompts/spell-todo.prompt.md +126 -0
- package/dist/assets/DECISIONS.md +19 -0
- package/dist/assets/TODO.md +7 -0
- package/dist/assets/agents/architecture-lead.yaml +61 -0
- package/dist/assets/agents/collaborator.yaml +59 -0
- package/dist/assets/agents/devops.yaml +60 -0
- package/dist/assets/agents/frontend-dev.yaml +60 -0
- package/dist/assets/agents/fullstack-dev.yaml +59 -0
- package/dist/assets/agents/marketing-strategist.yaml +60 -0
- package/dist/assets/agents/mobile-dev.yaml +59 -0
- package/dist/assets/agents/operations-comms.yaml +58 -0
- package/dist/assets/agents/orchestrator.yaml +60 -0
- package/dist/assets/agents/qa-lead.yaml +60 -0
- package/dist/assets/agents/research-analyst.yaml +59 -0
- package/dist/assets/agents/security-ops.yaml +61 -0
- package/dist/assets/ai-context/system-prompt-context.md +32 -0
- package/dist/assets/journal/.gitkeep +0 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +2313 -0
- package/dist/index.js.map +1 -0
- 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.
|