arkaos 4.31.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.
Files changed (107) hide show
  1. package/README.md +1 -1
  2. package/THE-ARKAOS-GUIDE.md +1 -1
  3. package/VERSION +1 -1
  4. package/arka/SKILL.md +1 -1
  5. package/arka/skills/forge/references/workflows.md +10 -0
  6. package/config/claude-agents/architect.md +1 -1
  7. package/config/claude-agents/backend-dev.md +1 -1
  8. package/config/claude-agents/brand-director.md +1 -1
  9. package/config/claude-agents/content-strategist.md +1 -1
  10. package/config/claude-agents/devops-eng.md +1 -1
  11. package/config/claude-agents/frontend-dev.md +1 -1
  12. package/config/claude-agents/marketing-director.md +1 -1
  13. package/config/claude-agents/ops-lead.md +1 -1
  14. package/config/claude-agents/pm-director.md +1 -1
  15. package/config/claude-agents/scriptwriter.md +1 -1
  16. package/config/claude-agents/strategy-director.md +1 -1
  17. package/config/claude-agents/trends-analyst.md +1 -1
  18. package/config/claude-agents/video-producer.md +1 -1
  19. package/config/skills-curated.yaml +2 -1
  20. package/config/skills-provenance.yaml +13 -0
  21. package/core/keys.py +17 -5
  22. package/departments/brand/agents/brand-director.yaml +1 -0
  23. package/departments/content/agents/content-strategist.yaml +1 -0
  24. package/departments/content/agents/production/trends-analyst.yaml +1 -0
  25. package/departments/content/agents/production/video-producer.yaml +1 -0
  26. package/departments/content/agents/scriptwriter.yaml +1 -0
  27. package/departments/dev/agents/architect.yaml +1 -0
  28. package/departments/dev/agents/backend-dev.yaml +1 -0
  29. package/departments/dev/agents/devops-eng.yaml +1 -0
  30. package/departments/dev/agents/frontend-dev.yaml +2 -0
  31. package/departments/dev/agents/tech-lead.yaml +1 -0
  32. package/departments/dev/skills/animated-website/SKILL.md +14 -1
  33. package/departments/dev/skills/diagram/SKILL.md +175 -0
  34. package/departments/dev/skills/diagram/examples/archify-repo-grid.architecture.json +57 -0
  35. package/departments/dev/skills/diagram/vendor/LICENSE +22 -0
  36. package/departments/dev/skills/diagram/vendor/SKILL.md +367 -0
  37. package/departments/dev/skills/diagram/vendor/assets/template.html +11470 -0
  38. package/departments/dev/skills/diagram/vendor/bin/archify.mjs +600 -0
  39. package/departments/dev/skills/diagram/vendor/bin/open-artifact.mjs +67 -0
  40. package/departments/dev/skills/diagram/vendor/examples/agent-run.lifecycle.json +71 -0
  41. package/departments/dev/skills/diagram/vendor/examples/agent-tool-call.workflow.json +111 -0
  42. package/departments/dev/skills/diagram/vendor/examples/async-job-roundtrip.sequence.json +62 -0
  43. package/departments/dev/skills/diagram/vendor/examples/cache-miss-request.sequence.json +82 -0
  44. package/departments/dev/skills/diagram/vendor/examples/deployment-release.lifecycle.json +50 -0
  45. package/departments/dev/skills/diagram/vendor/examples/event-stream.dataflow.json +58 -0
  46. package/departments/dev/skills/diagram/vendor/examples/incident-response.workflow.json +65 -0
  47. package/departments/dev/skills/diagram/vendor/examples/product-analytics.dataflow.json +77 -0
  48. package/departments/dev/skills/diagram/vendor/examples/production-deployment.architecture.json +70 -0
  49. package/departments/dev/skills/diagram/vendor/examples/release-delivery.workflow.json +63 -0
  50. package/departments/dev/skills/diagram/vendor/examples/web-app.architecture.json +47 -0
  51. package/departments/dev/skills/diagram/vendor/package-lock.json +80 -0
  52. package/departments/dev/skills/diagram/vendor/package.json +28 -0
  53. package/departments/dev/skills/diagram/vendor/recipes/scenarios.mjs +350 -0
  54. package/departments/dev/skills/diagram/vendor/renderers/architecture/grid.mjs +62 -0
  55. package/departments/dev/skills/diagram/vendor/renderers/architecture/render-architecture.mjs +490 -0
  56. package/departments/dev/skills/diagram/vendor/renderers/dataflow/README.md +93 -0
  57. package/departments/dev/skills/diagram/vendor/renderers/dataflow/render-dataflow.mjs +396 -0
  58. package/departments/dev/skills/diagram/vendor/renderers/lifecycle/README.md +103 -0
  59. package/departments/dev/skills/diagram/vendor/renderers/lifecycle/render-lifecycle.mjs +482 -0
  60. package/departments/dev/skills/diagram/vendor/renderers/sequence/README.md +96 -0
  61. package/departments/dev/skills/diagram/vendor/renderers/sequence/render-sequence.mjs +357 -0
  62. package/departments/dev/skills/diagram/vendor/renderers/shared/cli.mjs +176 -0
  63. package/departments/dev/skills/diagram/vendor/renderers/shared/generated-validators.mjs +13 -0
  64. package/departments/dev/skills/diagram/vendor/renderers/shared/geometry.mjs +992 -0
  65. package/departments/dev/skills/diagram/vendor/renderers/shared/layout-report.mjs +40 -0
  66. package/departments/dev/skills/diagram/vendor/renderers/shared/utils.mjs +156 -0
  67. package/departments/dev/skills/diagram/vendor/renderers/shared/validator.mjs +40 -0
  68. package/departments/dev/skills/diagram/vendor/renderers/workflow/README.md +114 -0
  69. package/departments/dev/skills/diagram/vendor/renderers/workflow/render-workflow.mjs +598 -0
  70. package/departments/dev/skills/diagram/vendor/schemas/README.md +93 -0
  71. package/departments/dev/skills/diagram/vendor/schemas/architecture.schema.json +125 -0
  72. package/departments/dev/skills/diagram/vendor/schemas/common.schema.json +62 -0
  73. package/departments/dev/skills/diagram/vendor/schemas/dataflow.schema.json +240 -0
  74. package/departments/dev/skills/diagram/vendor/schemas/lifecycle.schema.json +260 -0
  75. package/departments/dev/skills/diagram/vendor/schemas/sequence.schema.json +205 -0
  76. package/departments/dev/skills/diagram/vendor/schemas/workflow.schema.json +351 -0
  77. package/departments/dev/skills/diagram/vendor/scripts/check-render-output.mjs +774 -0
  78. package/departments/dev/skills/diagram/vendor/scripts/generate-validators.mjs +66 -0
  79. package/departments/dev/skills/diagram/vendor/scripts/render-examples.mjs +26 -0
  80. package/departments/dev/skills/spec/SKILL.md +19 -0
  81. package/departments/dev/skills/watch/SKILL.md +162 -0
  82. package/departments/dev/skills/watch/references/claude-video.LICENSE +21 -0
  83. package/departments/dev/skills/watch/scripts/config.py +145 -0
  84. package/departments/dev/skills/watch/scripts/download.py +179 -0
  85. package/departments/dev/skills/watch/scripts/frames.py +762 -0
  86. package/departments/dev/skills/watch/scripts/setup.py +373 -0
  87. package/departments/dev/skills/watch/scripts/transcribe.py +95 -0
  88. package/departments/dev/skills/watch/scripts/watch.py +531 -0
  89. package/departments/dev/skills/watch/scripts/whisper.py +466 -0
  90. package/departments/marketing/agents/marketing-director.yaml +1 -0
  91. package/departments/marketing/skills/ad-creative/SKILL.md +5 -0
  92. package/departments/ops/agents/ops-lead.yaml +1 -0
  93. package/departments/pm/agents/pm-director.yaml +1 -0
  94. package/departments/strategy/agents/strategy-director.yaml +1 -0
  95. package/harness/codex/AGENTS.md +1 -1
  96. package/harness/copilot/copilot-instructions.md +1 -1
  97. package/harness/cursor/rules/arkaos.mdc +2 -2
  98. package/harness/gemini/GEMINI.md +1 -1
  99. package/harness/opencode/AGENTS.md +1 -1
  100. package/harness/zed/.rules +1 -1
  101. package/installer/doctor.js +38 -4
  102. package/knowledge/agents-registry-v2.json +16 -1
  103. package/knowledge/skills-manifest.json +27 -1
  104. package/package.json +3 -2
  105. package/pyproject.toml +1 -1
  106. package/scripts/skill_validator.py +10 -2
  107. package/scripts/tools/docs_stats.py +8 -2
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **The Operating System for AI Agent Teams.**
4
4
 
5
- 89 agents. 17 departments. 329 skills. Enterprise frameworks. Multi-runtime. One install.
5
+ 89 agents. 17 departments. 331 skills. Enterprise frameworks. Multi-runtime. One install.
6
6
 
7
7
  ```bash
8
8
  npx arkaos install
@@ -1,6 +1,6 @@
1
1
  # The ArkaOS Guide
2
2
 
3
- > v4.31.0 — 89 agents, 17 departments, 329 skills, 297 commands, 16 ADRs.
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.31.0
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. 329 skills. Multi-runtime. Dashboard. Knowledge RAG.
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), business / domain analysis.
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, Service + Repository pattern.
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: brand-director
3
3
  description: >
4
- Valentina — Creative Director (brand squad). Executes: brand identity creation, visual design direction, UX/UI strategy, design systems.
4
+ Valentina — Creative Director (brand squad). Executes: brand identity creation, reference-video visual analysis via dev/watch (complete frames + transcript — motion and art direction judged on evidence, never on screenshots), visual design direction, UX/UI strategy.
5
5
  model: sonnet
6
6
  ---
7
7
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: content-strategist
3
3
  description: >
4
- Rafael — Content Strategist (content squad). Executes: viral content design, hook writing & packaging, script structure, content operating systems.
4
+ Rafael — Content Strategist (content squad). Executes: viral content design, reference-video analysis via dev/watch (frames + timestamped transcript before judging any video), hook writing & packaging, script structure.
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), cloud platforms (Vercel, Azure, AWS).
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), Nuxt 3, React 19 / Next.js 15, TypeScript.
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: marketing-director
3
3
  description: >
4
- Luna — Marketing Director (marketing squad). Executes: growth strategy, content marketing, SEO, paid acquisition.
4
+ Luna — Marketing Director (marketing squad). Executes: growth strategy, video-ad teardown via dev/watch (hook, pacing and spoken-copy evidence from frames + transcript), content marketing, SEO.
5
5
  model: sonnet
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, bottleneck analysis.
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), product risk assessment (value/usability/feasibility/viability).
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: scriptwriter
3
3
  description: >
4
- Joana — Scriptwriter (content squad). Executes: video scriptwriting (YouTube, Reels, TikTok), cinematic narrative for short and long-form, storyboard-ready scene writing (scene/shot/VO/on-screen-text columns), narrative structure (hook-bridge-body-CTA; beat sheets; story circles).
4
+ Joana — Scriptwriter (content squad). Executes: video scriptwriting (YouTube, Reels, TikTok), reference-video teardown via dev/watch (hook, pacing and beat analysis from frames + transcript), cinematic narrative for short and long-form, storyboard-ready scene writing (scene/shot/VO/on-screen-text columns).
5
5
  model: opus
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, positioning.
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
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: trends-analyst
3
3
  description: >
4
- Margarida — Trends & Niche Analyst (content squad). Executes: trend detection across platforms (Agent-Reach: X, Reddit, YouTube, RSS, Exa), niche viability scoring (audience size, competition density, monetization path, brand fit), platform algorithm shift monitoring, whitespace analysis for new channels and formats.
4
+ Margarida — Trends & Niche Analyst (content squad). Executes: trend detection across platforms (Agent-Reach: X, Reddit, YouTube, RSS, Exa), viral-video deconstruction via dev/watch (scene-aware frames + transcript, timestamp-cited), niche viability scoring (audience size, competition density, monetization path, brand fit), platform algorithm shift monitoring.
5
5
  model: sonnet
6
6
  ---
7
7
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: video-producer
3
3
  description: >
4
- Simão — Video Producer & Production Lead (content squad). Executes: video production pipelines (script → storyboard → assets → edit → render), Hyperframes video-as-code editing (HTML/CSS/JS + GSAP → MP4), Higgsfield generation orchestration (image, video, audio, motion control, upscale, reframe), shot lists and EDLs (scene/shot/VO/on-screen-text columns).
4
+ Simão — Video Producer & Production Lead (content squad). Executes: video production pipelines (script → storyboard → assets → edit → render), cut review via dev/watch (frame + transcript evidence on own renders before the Quality Gate), Hyperframes video-as-code editing (HTML/CSS/JS + GSAP → MP4), Higgsfield generation orchestration (image, video, audio, motion control, upscale, reframe).
5
5
  model: opus
6
6
  ---
7
7
 
@@ -24,7 +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, tdd-cycle]
27
+ db-design, diagram, refactor-plan, runbook, security-audit, spec,
28
+ tdd-cycle, watch]
28
29
  ecom: [cart-recovery, store-audit]
29
30
  finance: [financial-model, unit-economics]
30
31
  kb: [search-kb, zettelkasten-process]
@@ -91,6 +91,19 @@ derived:
91
91
  origin: community
92
92
  source: https://github.com/nutlope/hallmark
93
93
  license: MIT
94
+ # Watch absorption campaign — video-input primitive derived from
95
+ # bradautomates/claude-video v0.2.0 (MIT), maintained natively.
96
+ departments/dev/skills/watch:
97
+ origin: community
98
+ source: https://github.com/bradautomates/claude-video
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
94
107
  # Marketing skills integration campaign — derived from
95
108
  # coreyhaines31/marketingskills (MIT). Frontmatter metadata must match
96
109
  # each entry field-for-field (test_registry_matches_frontmatter_field_for_field).
package/core/keys.py CHANGED
@@ -7,15 +7,27 @@ import json
7
7
  import os
8
8
  import stat
9
9
  from pathlib import Path
10
- from typing import Optional
11
10
 
12
11
  KEYS_PATH = Path.home() / ".arkaos" / "keys.json"
13
12
 
14
13
  # Known providers with descriptions
15
14
  PROVIDERS = {
16
- "OPENAI_API_KEY": {"name": "OpenAI", "used_for": "Whisper transcription, embeddings, GPT"},
17
- "GOOGLE_API_KEY": {"name": "Google", "used_for": "Gemini API, Nano Banana, Google Cloud AI"},
18
- "FAL_API_KEY": {"name": "fal.ai", "used_for": "Image generation, video generation"},
15
+ "OPENAI_API_KEY": {
16
+ "name": "OpenAI",
17
+ "used_for": "Whisper transcription (/watch fallback), embeddings, GPT",
18
+ },
19
+ "GOOGLE_API_KEY": {
20
+ "name": "Google",
21
+ "used_for": "Gemini API, Nano Banana, Google Cloud AI",
22
+ },
23
+ "FAL_API_KEY": {
24
+ "name": "fal.ai",
25
+ "used_for": "Image generation, video generation",
26
+ },
27
+ "GROQ_API_KEY": {
28
+ "name": "Groq",
29
+ "used_for": "Whisper transcription for /watch (whisper-large-v3 — cheaper, faster)",
30
+ },
19
31
  }
20
32
 
21
33
 
@@ -31,7 +43,7 @@ def _save(keys: dict[str, str]) -> None:
31
43
  os.chmod(KEYS_PATH, stat.S_IRUSR | stat.S_IWUSR) # 600
32
44
 
33
45
 
34
- def get_key(name: str) -> Optional[str]:
46
+ def get_key(name: str) -> str | None:
35
47
  """Get an API key by name. Also checks environment variables."""
36
48
  env_val = os.environ.get(name)
37
49
  if env_val:
@@ -52,6 +52,7 @@ authority:
52
52
  expertise:
53
53
  domains:
54
54
  - brand identity creation
55
+ - reference-video visual analysis via dev/watch (complete frames + transcript — motion and art direction judged on evidence, never on screenshots)
55
56
  - visual design direction
56
57
  - UX/UI strategy
57
58
  - design systems
@@ -48,6 +48,7 @@ authority:
48
48
  expertise:
49
49
  domains:
50
50
  - viral content design
51
+ - reference-video analysis via dev/watch (frames + timestamped transcript before judging any video)
51
52
  - hook writing & packaging
52
53
  - script structure
53
54
  - content operating systems
@@ -45,6 +45,7 @@ authority:
45
45
  expertise:
46
46
  domains:
47
47
  - "trend detection across platforms (Agent-Reach: X, Reddit, YouTube, RSS, Exa)"
48
+ - viral-video deconstruction via dev/watch (scene-aware frames + transcript, timestamp-cited)
48
49
  - niche viability scoring (audience size, competition density, monetization path, brand fit)
49
50
  - platform algorithm shift monitoring
50
51
  - whitespace analysis for new channels and formats
@@ -51,6 +51,7 @@ authority:
51
51
  expertise:
52
52
  domains:
53
53
  - video production pipelines (script → storyboard → assets → edit → render)
54
+ - cut review via dev/watch (frame + transcript evidence on own renders before the Quality Gate)
54
55
  - Hyperframes video-as-code editing (HTML/CSS/JS + GSAP → MP4)
55
56
  - Higgsfield generation orchestration (image, video, audio, motion control, upscale, reframe)
56
57
  - shot lists and EDLs (scene/shot/VO/on-screen-text columns)
@@ -43,6 +43,7 @@ authority:
43
43
  expertise:
44
44
  domains:
45
45
  - video scriptwriting (YouTube, Reels, TikTok)
46
+ - reference-video teardown via dev/watch (hook, pacing and beat analysis from frames + transcript)
46
47
  - cinematic narrative for short and long-form
47
48
  - storyboard-ready scene writing (scene/shot/VO/on-screen-text columns)
48
49
  - narrative structure (hook-bridge-body-CTA; beat sheets; story circles)
@@ -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)
@@ -47,6 +47,8 @@ authority:
47
47
  expertise:
48
48
  domains:
49
49
  - Vue 3 (Composition API)
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)
50
52
  - Nuxt 3
51
53
  - React 19 / Next.js 15
52
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
@@ -76,7 +76,20 @@ If the user gives just a video path and a vague concept, ask ONE clarifying ques
76
76
 
77
77
  ### Step 1: Analyze the Video
78
78
 
79
- Probe the video to understand what you're working with:
79
+ **See the content first (dev/watch primitive).** Before any design decision,
80
+ watch the source with the native `dev/watch` skill so overlay copy, section
81
+ pacing and dwell points are grounded in what is actually on screen — the
82
+ "complete frames" doctrine, never screenshots or guesses:
83
+
84
+ ```bash
85
+ PY="$HOME/.arkaos/bin/arka-py"; command -v "$PY" >/dev/null || PY=python3
86
+ "$PY" ~/.claude/skills/arka-watch/scripts/watch.py "/path/to/video.mp4" --no-whisper
87
+ ```
88
+
89
+ Read every frame the report lists, note the key visual beats (`t=MM:SS`) —
90
+ they become section boundaries and dwell points in Step 4.
91
+
92
+ Then probe the technical metadata:
80
93
 
81
94
  ```bash
82
95
  ffprobe -v quiet -print_format json -show_format -show_streams "/path/to/video.mp4"
@@ -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.