arkaos 4.32.0 → 4.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/THE-ARKAOS-GUIDE.md +1 -1
- package/VERSION +1 -1
- package/arka/SKILL.md +1 -1
- package/arka/skills/forge/references/workflows.md +10 -0
- package/config/claude-agents/architect.md +1 -1
- package/config/claude-agents/backend-dev.md +1 -1
- package/config/claude-agents/devops-eng.md +1 -1
- package/config/claude-agents/frontend-dev.md +1 -1
- package/config/claude-agents/ops-lead.md +1 -1
- package/config/claude-agents/pm-director.md +1 -1
- package/config/claude-agents/strategy-director.md +1 -1
- package/config/skills-curated.yaml +2 -2
- package/config/skills-provenance.yaml +7 -0
- package/departments/dev/agents/architect.yaml +1 -0
- package/departments/dev/agents/backend-dev.yaml +1 -0
- package/departments/dev/agents/devops-eng.yaml +1 -0
- package/departments/dev/agents/frontend-dev.yaml +1 -0
- package/departments/dev/agents/tech-lead.yaml +1 -0
- package/departments/dev/skills/diagram/SKILL.md +175 -0
- package/departments/dev/skills/diagram/examples/archify-repo-grid.architecture.json +57 -0
- package/departments/dev/skills/diagram/vendor/LICENSE +22 -0
- package/departments/dev/skills/diagram/vendor/SKILL.md +367 -0
- package/departments/dev/skills/diagram/vendor/assets/template.html +11470 -0
- package/departments/dev/skills/diagram/vendor/bin/archify.mjs +600 -0
- package/departments/dev/skills/diagram/vendor/bin/open-artifact.mjs +67 -0
- package/departments/dev/skills/diagram/vendor/examples/agent-run.lifecycle.json +71 -0
- package/departments/dev/skills/diagram/vendor/examples/agent-tool-call.workflow.json +111 -0
- package/departments/dev/skills/diagram/vendor/examples/async-job-roundtrip.sequence.json +62 -0
- package/departments/dev/skills/diagram/vendor/examples/cache-miss-request.sequence.json +82 -0
- package/departments/dev/skills/diagram/vendor/examples/deployment-release.lifecycle.json +50 -0
- package/departments/dev/skills/diagram/vendor/examples/event-stream.dataflow.json +58 -0
- package/departments/dev/skills/diagram/vendor/examples/incident-response.workflow.json +65 -0
- package/departments/dev/skills/diagram/vendor/examples/product-analytics.dataflow.json +77 -0
- package/departments/dev/skills/diagram/vendor/examples/production-deployment.architecture.json +70 -0
- package/departments/dev/skills/diagram/vendor/examples/release-delivery.workflow.json +63 -0
- package/departments/dev/skills/diagram/vendor/examples/web-app.architecture.json +47 -0
- package/departments/dev/skills/diagram/vendor/package-lock.json +80 -0
- package/departments/dev/skills/diagram/vendor/package.json +28 -0
- package/departments/dev/skills/diagram/vendor/recipes/scenarios.mjs +350 -0
- package/departments/dev/skills/diagram/vendor/renderers/architecture/grid.mjs +62 -0
- package/departments/dev/skills/diagram/vendor/renderers/architecture/render-architecture.mjs +490 -0
- package/departments/dev/skills/diagram/vendor/renderers/dataflow/README.md +93 -0
- package/departments/dev/skills/diagram/vendor/renderers/dataflow/render-dataflow.mjs +396 -0
- package/departments/dev/skills/diagram/vendor/renderers/lifecycle/README.md +103 -0
- package/departments/dev/skills/diagram/vendor/renderers/lifecycle/render-lifecycle.mjs +482 -0
- package/departments/dev/skills/diagram/vendor/renderers/sequence/README.md +96 -0
- package/departments/dev/skills/diagram/vendor/renderers/sequence/render-sequence.mjs +357 -0
- package/departments/dev/skills/diagram/vendor/renderers/shared/cli.mjs +176 -0
- package/departments/dev/skills/diagram/vendor/renderers/shared/generated-validators.mjs +13 -0
- package/departments/dev/skills/diagram/vendor/renderers/shared/geometry.mjs +992 -0
- package/departments/dev/skills/diagram/vendor/renderers/shared/layout-report.mjs +40 -0
- package/departments/dev/skills/diagram/vendor/renderers/shared/utils.mjs +156 -0
- package/departments/dev/skills/diagram/vendor/renderers/shared/validator.mjs +40 -0
- package/departments/dev/skills/diagram/vendor/renderers/workflow/README.md +114 -0
- package/departments/dev/skills/diagram/vendor/renderers/workflow/render-workflow.mjs +598 -0
- package/departments/dev/skills/diagram/vendor/schemas/README.md +93 -0
- package/departments/dev/skills/diagram/vendor/schemas/architecture.schema.json +125 -0
- package/departments/dev/skills/diagram/vendor/schemas/common.schema.json +62 -0
- package/departments/dev/skills/diagram/vendor/schemas/dataflow.schema.json +240 -0
- package/departments/dev/skills/diagram/vendor/schemas/lifecycle.schema.json +260 -0
- package/departments/dev/skills/diagram/vendor/schemas/sequence.schema.json +205 -0
- package/departments/dev/skills/diagram/vendor/schemas/workflow.schema.json +351 -0
- package/departments/dev/skills/diagram/vendor/scripts/check-render-output.mjs +774 -0
- package/departments/dev/skills/diagram/vendor/scripts/generate-validators.mjs +66 -0
- package/departments/dev/skills/diagram/vendor/scripts/render-examples.mjs +26 -0
- package/departments/dev/skills/spec/SKILL.md +19 -0
- package/departments/ops/agents/ops-lead.yaml +1 -0
- package/departments/pm/agents/pm-director.yaml +1 -0
- package/departments/strategy/agents/strategy-director.yaml +1 -0
- package/harness/codex/AGENTS.md +1 -1
- package/harness/copilot/copilot-instructions.md +1 -1
- package/harness/cursor/rules/arkaos.mdc +2 -2
- package/harness/gemini/GEMINI.md +1 -1
- package/harness/opencode/AGENTS.md +1 -1
- package/harness/zed/.rules +1 -1
- package/knowledge/agents-registry-v2.json +9 -1
- package/knowledge/skills-manifest.json +14 -1
- package/package.json +3 -2
- package/pyproject.toml +1 -1
- package/scripts/skill_validator.py +10 -2
- package/scripts/tools/docs_stats.py +8 -2
package/README.md
CHANGED
package/THE-ARKAOS-GUIDE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# The ArkaOS Guide
|
|
2
2
|
|
|
3
|
-
> v4.
|
|
3
|
+
> v4.33.0 — 89 agents, 17 departments, 331 skills, 297 commands, 16 ADRs.
|
|
4
4
|
> One file, everything you need to start. Generated by `scripts/guide_gen.py` — never hand-edited.
|
|
5
5
|
|
|
6
6
|
## What it is
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
4.
|
|
1
|
+
4.33.0
|
package/arka/SKILL.md
CHANGED
|
@@ -47,7 +47,7 @@ complementary, not alternatives.
|
|
|
47
47
|
# ArkaOS — Main Orchestrator
|
|
48
48
|
|
|
49
49
|
> **The Operating System for AI Agent Teams**
|
|
50
|
-
> 89 agents. 17 departments.
|
|
50
|
+
> 89 agents. 17 departments. 331 skills. Multi-runtime. Dashboard. Knowledge RAG.
|
|
51
51
|
|
|
52
52
|
## ⛔ Evidence flow — 4 gates (NON-NEGOTIABLE)
|
|
53
53
|
|
|
@@ -190,6 +190,16 @@ Tell user: "Visual companion available at http://localhost:<port>/forge-<id>.htm
|
|
|
190
190
|
Note: For `shallow` tier, companion is not generated (`should_suggest_companion()` returns `"none"`).
|
|
191
191
|
For `standard`, it is available on request. For `deep`, proactively suggest it.
|
|
192
192
|
|
|
193
|
+
**Richer option — plan diagram via `dev/diagram`:** for `standard`/`deep`
|
|
194
|
+
tiers, additionally offer an interactive plan diagram. Load the
|
|
195
|
+
`dev/diagram` skill, author a `workflow` IR from the plan (`plan_phases`
|
|
196
|
+
→ lane nodes in execution order, phase dependencies → edges, key
|
|
197
|
+
deliverables → cards), and deliver it to the same `/tmp` directory as
|
|
198
|
+
`/tmp/diagram-forge-<plan_id>.html` — the `http.server` above serves
|
|
199
|
+
both artifacts side by side. The radar remains the default companion
|
|
200
|
+
(zero Node dependency); if Node is unavailable, the radar is the only
|
|
201
|
+
companion — never block the Forge on the diagram.
|
|
202
|
+
|
|
193
203
|
### Step 9 — Handoff (on Approve)
|
|
194
204
|
|
|
195
205
|
1. Check for repo drift since the snapshot:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: architect
|
|
3
3
|
description: >
|
|
4
|
-
Gabriel — Software Architect (dev squad). Executes: system design, domain modeling (event storming, bounded contexts), design patterns (GoF, PoEAA)
|
|
4
|
+
Gabriel — Software Architect (dev squad). Executes: system design, system visualization via dev/diagram (architecture + dataflow diagrams delivered as browser artifacts), domain modeling (event storming, bounded contexts), design patterns (GoF, PoEAA).
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-dev
|
|
3
3
|
description: >
|
|
4
|
-
Andre — Backend Core Lead (dev squad). Executes: Laravel 11 / PHP 8.3, PostgreSQL / Supabase, REST API design,
|
|
4
|
+
Andre — Backend Core Lead (dev squad). Executes: Laravel 11 / PHP 8.3, PostgreSQL / Supabase, REST API design, API flow visualization via dev/diagram (sequence diagrams for endpoint contracts and async jobs).
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devops-eng
|
|
3
3
|
description: >
|
|
4
|
-
Carlos — DevOps Lead (dev squad). Executes: CI/CD pipelines (GitHub Actions, GitLab CI), container orchestration (Docker, Kubernetes), infrastructure as code (Terraform, Pulumi)
|
|
4
|
+
Carlos — DevOps Lead (dev squad). Executes: CI/CD pipelines (GitHub Actions, GitLab CI), release visualization via dev/diagram (lifecycle + workflow diagrams for pipelines and rollouts), container orchestration (Docker, Kubernetes), infrastructure as code (Terraform, Pulumi).
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend-dev
|
|
3
3
|
description: >
|
|
4
|
-
Diana — Senior Frontend Developer (dev squad). Executes: Vue 3 (Composition API), motion-reference analysis via dev/watch (scroll/animation benchmarks from frames + transcript before implementing),
|
|
4
|
+
Diana — Senior Frontend Developer (dev squad). Executes: Vue 3 (Composition API), motion-reference analysis via dev/watch (scroll/animation benchmarks from frames + transcript before implementing), user-flow visualization via dev/diagram (workflow diagrams for page and interaction flows), Nuxt 3.
|
|
5
5
|
model: opus
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ops-lead
|
|
3
3
|
description: >
|
|
4
|
-
Daniel — Operations Lead (ops squad). Executes: workflow automation (Zapier, Make, n8n), process mapping & optimization, SOP creation & management
|
|
4
|
+
Daniel — Operations Lead (ops squad). Executes: workflow automation (Zapier, Make, n8n), SOP/process visualization via dev/diagram (workflow + lifecycle diagrams for automations and runbooks), process mapping & optimization, SOP creation & management.
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pm-director
|
|
3
3
|
description: >
|
|
4
|
-
Carolina — Product Manager (pm squad). Executes: continuous product discovery (daily habit), weekly customer interviewing, dual-track agile (discovery + delivery)
|
|
4
|
+
Carolina — Product Manager (pm squad). Executes: continuous product discovery (daily habit), deliverable visualization via dev/diagram (workflow diagrams so stakeholders see scope before build), weekly customer interviewing, dual-track agile (discovery + delivery).
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: strategy-director
|
|
3
3
|
description: >
|
|
4
|
-
Tomas — Chief Strategist (strategy squad). Executes: competitive strategy, market analysis, business model design
|
|
4
|
+
Tomas — Chief Strategist (strategy squad). Executes: competitive strategy, business-flow visualization via dev/diagram (architecture + dataflow diagrams of business models and value chains), market analysis, business model design.
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -24,8 +24,8 @@ curated_subskills:
|
|
|
24
24
|
community: [moderation]
|
|
25
25
|
content: [calendar, hook-write]
|
|
26
26
|
dev: [api-design, architecture-design, clean-code-review, code-review,
|
|
27
|
-
db-design, refactor-plan, runbook, security-audit, spec,
|
|
28
|
-
watch]
|
|
27
|
+
db-design, diagram, refactor-plan, runbook, security-audit, spec,
|
|
28
|
+
tdd-cycle, watch]
|
|
29
29
|
ecom: [cart-recovery, store-audit]
|
|
30
30
|
finance: [financial-model, unit-economics]
|
|
31
31
|
kb: [search-kb, zettelkasten-process]
|
|
@@ -97,6 +97,13 @@ derived:
|
|
|
97
97
|
origin: community
|
|
98
98
|
source: https://github.com/bradautomates/claude-video
|
|
99
99
|
license: MIT
|
|
100
|
+
# Diagram absorption campaign — visual spec/plan output derived from
|
|
101
|
+
# tt-a1i/archify v2.11.0 (MIT; portions Cocoon AI), vendored verbatim
|
|
102
|
+
# under vendor/ and maintained natively.
|
|
103
|
+
departments/dev/skills/diagram:
|
|
104
|
+
origin: community
|
|
105
|
+
source: https://github.com/tt-a1i/archify
|
|
106
|
+
license: MIT
|
|
100
107
|
# Marketing skills integration campaign — derived from
|
|
101
108
|
# coreyhaines31/marketingskills (MIT). Frontmatter metadata must match
|
|
102
109
|
# each entry field-for-field (test_registry_matches_frontmatter_field_for_field).
|
|
@@ -50,6 +50,7 @@ authority:
|
|
|
50
50
|
expertise:
|
|
51
51
|
domains:
|
|
52
52
|
- system design
|
|
53
|
+
- system visualization via dev/diagram (architecture + dataflow diagrams delivered as browser artifacts)
|
|
53
54
|
- domain modeling (event storming, bounded contexts)
|
|
54
55
|
- design patterns (GoF, PoEAA)
|
|
55
56
|
- business / domain analysis
|
|
@@ -53,6 +53,7 @@ expertise:
|
|
|
53
53
|
- Laravel 11 / PHP 8.3
|
|
54
54
|
- PostgreSQL / Supabase
|
|
55
55
|
- REST API design
|
|
56
|
+
- API flow visualization via dev/diagram (sequence diagrams for endpoint contracts and async jobs)
|
|
56
57
|
- Service + Repository pattern
|
|
57
58
|
- Database migrations & indexing
|
|
58
59
|
- Queue systems (Horizon)
|
|
@@ -46,6 +46,7 @@ authority:
|
|
|
46
46
|
expertise:
|
|
47
47
|
domains:
|
|
48
48
|
- CI/CD pipelines (GitHub Actions, GitLab CI)
|
|
49
|
+
- release visualization via dev/diagram (lifecycle + workflow diagrams for pipelines and rollouts)
|
|
49
50
|
- container orchestration (Docker, Kubernetes)
|
|
50
51
|
- infrastructure as code (Terraform, Pulumi)
|
|
51
52
|
- cloud platforms (Vercel, Azure, AWS)
|
|
@@ -48,6 +48,7 @@ expertise:
|
|
|
48
48
|
domains:
|
|
49
49
|
- Vue 3 (Composition API)
|
|
50
50
|
- motion-reference analysis via dev/watch (scroll/animation benchmarks from frames + transcript before implementing)
|
|
51
|
+
- user-flow visualization via dev/diagram (workflow diagrams for page and interaction flows)
|
|
51
52
|
- Nuxt 3
|
|
52
53
|
- React 19 / Next.js 15
|
|
53
54
|
- TypeScript
|
|
@@ -50,6 +50,7 @@ authority:
|
|
|
50
50
|
expertise:
|
|
51
51
|
domains:
|
|
52
52
|
- workflow orchestration
|
|
53
|
+
- visual spec/plan companions via dev/diagram (typed IR -> interactive HTML the user opens before build)
|
|
53
54
|
- code quality enforcement
|
|
54
55
|
- sprint/cycle management
|
|
55
56
|
- technical decision-making
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dev/diagram
|
|
3
|
+
description: >
|
|
4
|
+
Turn a spec, plan, or system description into an interactive diagram the
|
|
5
|
+
user opens in a browser — one self-contained HTML file, five typed modes
|
|
6
|
+
(architecture, workflow, sequence, dataflow, lifecycle). The agent authors
|
|
7
|
+
a JSON IR, a vendored zero-dependency Node CLI validates it against JSON
|
|
8
|
+
Schemas, renders it, runs semantic gates (clean-flow/clean-label), and
|
|
9
|
+
emits a sha256 receipt. TRIGGER: "diagrama", "desenha a arquitetura",
|
|
10
|
+
"mostra-me visualmente", "visual da spec", "quero ver o fluxo", "diagram
|
|
11
|
+
this", "/dev diagram"; the Visual Spec Companion step in dev/spec; the
|
|
12
|
+
Forge visual-companion option for MEDIUM/HIGH plans. SKIP: DECIDING or
|
|
13
|
+
evaluating the architecture itself -> dev/architecture-design (this
|
|
14
|
+
skill only draws the result); database ERDs -> dev/db-schema (Mermaid
|
|
15
|
+
ERD); page wireframes/sitemaps -> brand/wireframe and
|
|
16
|
+
landing/page-architect; data charts and dashboards -> the dataviz
|
|
17
|
+
skill; the Forge complexity radar -> the Forge's built-in companion
|
|
18
|
+
(core/forge/renderer.py).
|
|
19
|
+
allowed-tools: [Read, Write, Bash, AskUserQuestion]
|
|
20
|
+
metadata:
|
|
21
|
+
origin: community
|
|
22
|
+
source: https://github.com/tt-a1i/archify
|
|
23
|
+
license: MIT
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
<!-- arka:kb-first-prefix begin -->
|
|
27
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
28
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
29
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
30
|
+
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
31
|
+
<!-- arka:kb-first-prefix end -->
|
|
32
|
+
|
|
33
|
+
# /diagram — visual output for specs, plans, and systems
|
|
34
|
+
|
|
35
|
+
> **Agent:** Gabriel (Architect) + Paulo (Tech Lead) | **Framework:** Typed JSON IR, JSON Schema 2020-12, semantic layout gates
|
|
36
|
+
|
|
37
|
+
The user should SEE what will be built before it is built. This skill turns
|
|
38
|
+
a described system into a single self-contained HTML diagram (~530KB) with
|
|
39
|
+
theme switching, focused exploration, guided views, and PNG/SVG/WebM export
|
|
40
|
+
— no runtime dependencies, no telemetry. The only external reference is an
|
|
41
|
+
async Google Fonts stylesheet (JetBrains Mono) that degrades to system
|
|
42
|
+
monospace offline.
|
|
43
|
+
|
|
44
|
+
Absorbed from `tt-a1i/archify` v2.11.0 (MIT; portions Cocoon AI) and
|
|
45
|
+
maintained natively by ArkaOS. The upstream engine lives verbatim under
|
|
46
|
+
`vendor/`; you author the IR, the CLI does everything else. NEVER hand-edit
|
|
47
|
+
the generated HTML — fix the IR and re-deliver.
|
|
48
|
+
|
|
49
|
+
## Resolve `SKILL_DIR` (before any command)
|
|
50
|
+
|
|
51
|
+
Set `SKILL_DIR` to the absolute path of the directory containing THIS
|
|
52
|
+
SKILL.md (your harness showed it when you Read this file). Guard once:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
[ -f "$SKILL_DIR/vendor/bin/archify.mjs" ] || { echo "archify.mjs not under $SKILL_DIR" >&2; exit 1; }
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Step 0 — preflight (silent on success)
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
command -v node >/dev/null && node -e 'process.exit(+process.versions.node.split(".")[0] >= 18 ? 0 : 1)'
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Non-zero → stop and tell the user plainly: this skill needs Node.js >= 18
|
|
65
|
+
(`brew install node` on macOS, https://nodejs.org elsewhere). There is no
|
|
66
|
+
auto-install. When in doubt about the vendor payload itself, run
|
|
67
|
+
`node "$SKILL_DIR/vendor/bin/archify.mjs" doctor`.
|
|
68
|
+
|
|
69
|
+
## Step 1 — choose the diagram type
|
|
70
|
+
|
|
71
|
+
| Type | Best for | IR collections |
|
|
72
|
+
|------|----------|----------------|
|
|
73
|
+
| `architecture` | components, services, storage, trust boundaries | `components` + `connections` |
|
|
74
|
+
| `workflow` | CI/CD, approvals, tool calls, runbooks, plan phases | `nodes` (in `lanes`/`cols`) + `edges` |
|
|
75
|
+
| `sequence` | API calls, cache fallback, auth handshakes, async traces | `participants` + `messages` |
|
|
76
|
+
| `dataflow` | pipelines, lineage, PII paths, consumers | `nodes` + `flows` |
|
|
77
|
+
| `lifecycle` | states, retries, waits, terminal outcomes | `states` + `transitions` |
|
|
78
|
+
|
|
79
|
+
Unsure? Ask the recommender — it returns a bounded recipe:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
node "$SKILL_DIR/vendor/bin/archify.mjs" guide "<one-line description of the situation>"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
`examples` lists the 10 bundled sample IRs (`vendor/examples/*.json`) —
|
|
86
|
+
Read the one closest to your case as a structural reference.
|
|
87
|
+
|
|
88
|
+
## Step 2 — author the IR
|
|
89
|
+
|
|
90
|
+
Write `<slug>.<type>.json` to `/tmp` (or the session scratchpad). Every IR
|
|
91
|
+
needs `schema_version: 1`, `diagram_type: "<type>"`, and `meta.title`;
|
|
92
|
+
`meta` also takes `subtitle`, `visual_preset` (`classic|signal-flow|
|
|
93
|
+
blueprint`), `views` (max 5 guided views), and `animation: "trace"` (motion
|
|
94
|
+
is opt-in — leave it off unless asked). Keep one bounded view: 8–12 core
|
|
95
|
+
nodes, one primary path, supporting detail in `cards` instead of extra
|
|
96
|
+
edges.
|
|
97
|
+
|
|
98
|
+
For per-mode layout rules (lanes/cols, pinning, sequence ordering,
|
|
99
|
+
architecture `pos` grid), Read ONLY the relevant mode section of the
|
|
100
|
+
upstream deep guide at `$SKILL_DIR/vendor/SKILL.md` — do not load all 61KB.
|
|
101
|
+
|
|
102
|
+
Validate before delivering; error messages carry the offending node
|
|
103
|
+
`id`/`label` so you can fix the IR surgically:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
node "$SKILL_DIR/vendor/bin/archify.mjs" validate <type> /tmp/<slug>.<type>.json --json
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Step 3 — deliver
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
node "$SKILL_DIR/vendor/bin/archify.mjs" deliver <type> /tmp/<slug>.<type>.json \
|
|
113
|
+
/tmp/diagram-<slug>.html --json --open --quality standard
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Deliver renders to a staging file, runs the artifact checks, atomically
|
|
117
|
+
renames on pass, and emits a JSON receipt. `--open` opens the artifact
|
|
118
|
+
natively; on a headless/remote session drop `--open` and reuse the Forge
|
|
119
|
+
Step 6a convention instead (`python -m http.server 0 --directory /tmp`,
|
|
120
|
+
then `open http://localhost:<port>/diagram-<slug>.html`). Use
|
|
121
|
+
`--quality showcase` only when the user asks for a presentation-grade
|
|
122
|
+
artifact — it fails on dense-but-legal topologies that `standard` accepts.
|
|
123
|
+
|
|
124
|
+
## Step 4 — read the receipt, report honestly
|
|
125
|
+
|
|
126
|
+
Parse the receipt JSON. On success report: artifact path,
|
|
127
|
+
`validation.checksPassed`/`checkCount`, `compositionProfile`/`Status`, and
|
|
128
|
+
`artifact.sha256`. On failure the receipt carries `ok: false`, a `stage`,
|
|
129
|
+
and the failing check — fix the IR accordingly and re-deliver. Two common
|
|
130
|
+
gates: **clean-flow** (an edge crossing an unrelated node is always a hard
|
|
131
|
+
failure — reroute or move the node) and **clean-label** (label mask too
|
|
132
|
+
close to another route — nudge the label or spread lanes).
|
|
133
|
+
|
|
134
|
+
## Step 5 — persistence (optional)
|
|
135
|
+
|
|
136
|
+
The HTML is an ephemeral deliverable in `/tmp`. When the diagram belongs to
|
|
137
|
+
a durable deliverable (a spec, a Forge plan, an SOP):
|
|
138
|
+
|
|
139
|
+
- save the IR JSON (small, regenerable source of truth) to the vault next
|
|
140
|
+
to the note, e.g. `Projects/<name>/Specs/visuals/SPEC-<slug>.<type>.json`;
|
|
141
|
+
- record the artifact in the note's frontmatter `visuals:` list as
|
|
142
|
+
`{type, ir, html, sha256}`;
|
|
143
|
+
- copy the HTML itself into the vault only when the user asks.
|
|
144
|
+
|
|
145
|
+
Ask before writing to the vault when the user did not request persistence.
|
|
146
|
+
|
|
147
|
+
## Output template
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
Diagram: <type> — <title>
|
|
151
|
+
IR: /tmp/<slug>.<type>.json
|
|
152
|
+
Artifact: /tmp/diagram-<slug>.html (sha256 <first-12>)
|
|
153
|
+
Checks: <checksPassed>/<checkCount> passed · composition <status>
|
|
154
|
+
Opened: <natively | http://localhost:<port>/… | not opened (reason)>
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Failure modes
|
|
158
|
+
|
|
159
|
+
- Node missing or < 18 → stop with the install hint; never degrade to
|
|
160
|
+
ASCII art silently — say the visual companion is unavailable and why.
|
|
161
|
+
- `validate` fails → fix the IR at the reported `id`/`label`; re-validate.
|
|
162
|
+
- `deliver` fails a gate → the previous artifact (if any) is untouched;
|
|
163
|
+
fix the IR, never the HTML.
|
|
164
|
+
- Dense topology keeps failing `showcase` → deliver with `standard` and
|
|
165
|
+
say so; `standard` keeps renderable-but-dense layouts as warnings.
|
|
166
|
+
|
|
167
|
+
## Security
|
|
168
|
+
|
|
169
|
+
Local-only: the CLI spawns only `node` subprocesses; the generated HTML
|
|
170
|
+
makes no network calls (no fetch/eval/telemetry) except the optional
|
|
171
|
+
Google Fonts stylesheet, and the footer link (when present) carries only
|
|
172
|
+
the diagram type — never the title, graph, or source. Receipts include the
|
|
173
|
+
artifact sha256 for integrity. Vendored engine: `vendor/` (bin, renderers,
|
|
174
|
+
schemas, recipes, template, examples, test) — byte-identical to upstream
|
|
175
|
+
v2.11.0 except trims listed in `docs/THIRD-PARTY-NOTICES.md`.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"diagram_type": "architecture",
|
|
4
|
+
"meta": {
|
|
5
|
+
"title": "Archify Pipeline",
|
|
6
|
+
"subtitle": "Grid placement demo — row/col instead of manual pos",
|
|
7
|
+
"output": "examples/archify-repo-grid.html"
|
|
8
|
+
},
|
|
9
|
+
"layout": {
|
|
10
|
+
"mode": "grid",
|
|
11
|
+
"origin": [40, 100],
|
|
12
|
+
"cols": 7,
|
|
13
|
+
"gapX": 24,
|
|
14
|
+
"gapY": 48,
|
|
15
|
+
"cellW": 120,
|
|
16
|
+
"cellH": 60
|
|
17
|
+
},
|
|
18
|
+
"components": [
|
|
19
|
+
{ "id": "user", "type": "external", "label": "You", "sublabel": "NL / Mermaid", "row": 1, "col": 0 },
|
|
20
|
+
{ "id": "agents", "type": "frontend", "label": "Agent Hosts", "sublabel": "Claude · Codex", "row": 1, "col": 1 },
|
|
21
|
+
{ "id": "skill", "type": "frontend", "label": "SKILL.md", "sublabel": "layout rules", "row": 0, "col": 1 },
|
|
22
|
+
{ "id": "ir", "type": "messagebus", "label": "JSON IR", "sublabel": "schema v1", "row": 1, "col": 2 },
|
|
23
|
+
{ "id": "schemas", "type": "security", "label": "Schema", "sublabel": "ajv", "row": 0, "col": 2 },
|
|
24
|
+
{ "id": "renderers", "type": "backend", "label": "Renderers ×5", "row": 1, "col": 3 },
|
|
25
|
+
{ "id": "template", "type": "frontend", "label": "template.html", "row": 1, "col": 4 },
|
|
26
|
+
{ "id": "checker", "type": "security", "label": "Output Check", "row": 1, "col": 5 },
|
|
27
|
+
{ "id": "html", "type": "cloud", "label": "HTML", "sublabel": "artifact", "row": 1, "col": 6 }
|
|
28
|
+
],
|
|
29
|
+
"boundaries": [
|
|
30
|
+
{
|
|
31
|
+
"kind": "region",
|
|
32
|
+
"label": "archify/ skill package",
|
|
33
|
+
"wraps": ["ir", "schemas", "renderers", "template", "checker"]
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"connections": [
|
|
37
|
+
{ "from": "user", "to": "agents", "variant": "emphasis" },
|
|
38
|
+
{ "from": "agents", "to": "skill", "fromSide": "top", "toSide": "bottom" },
|
|
39
|
+
{ "from": "agents", "to": "ir", "variant": "emphasis" },
|
|
40
|
+
{ "from": "ir", "to": "schemas", "variant": "security", "fromSide": "top", "toSide": "bottom" },
|
|
41
|
+
{ "from": "ir", "to": "renderers", "variant": "emphasis" },
|
|
42
|
+
{ "from": "renderers", "to": "template", "variant": "emphasis" },
|
|
43
|
+
{ "from": "template", "to": "checker", "variant": "emphasis" },
|
|
44
|
+
{ "from": "checker", "to": "html", "variant": "emphasis" }
|
|
45
|
+
],
|
|
46
|
+
"cards": [
|
|
47
|
+
{
|
|
48
|
+
"dot": "cyan",
|
|
49
|
+
"title": "Grid mode",
|
|
50
|
+
"items": [
|
|
51
|
+
"Set layout.mode grid and place components with row/col",
|
|
52
|
+
"pos still overrides a cell when you need fine tuning",
|
|
53
|
+
"Not auto-layout — fixed cell spacing only"
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 tt-a1i (Archify)
|
|
4
|
+
Copyright (c) 2025 Cocoon AI (original "architecture-diagram-generator")
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|