@laitszkin/apollo-toolkit 3.9.7 → 3.10.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 (44) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +17 -0
  3. package/README.md +6 -0
  4. package/analyse-app-logs/scripts/__pycache__/filter_logs_by_time.cpython-312.pyc +0 -0
  5. package/analyse-app-logs/scripts/__pycache__/log_cli_utils.cpython-312.pyc +0 -0
  6. package/analyse-app-logs/scripts/__pycache__/search_logs.cpython-312.pyc +0 -0
  7. package/cjk-pdf/agents/openai.yaml +5 -0
  8. package/docs-to-voice/scripts/__pycache__/docs_to_voice.cpython-312.pyc +0 -0
  9. package/generate-spec/SKILL.md +24 -4
  10. package/generate-spec/agents/openai.yaml +1 -0
  11. package/generate-spec/references/TEMPLATE_SPEC.md +98 -0
  12. package/generate-spec/scripts/__pycache__/create-specscpython-312.pyc +0 -0
  13. package/init-project-html/SKILL.md +181 -0
  14. package/init-project-html/agents/openai.yaml +13 -0
  15. package/init-project-html/references/TEMPLATE_SPEC.md +98 -0
  16. package/init-project-html/references/architecture-page.template.html +35 -0
  17. package/init-project-html/references/architecture.css +1059 -0
  18. package/init-project-html/sample-demo/resources/project-architecture/assets/architecture.css +1059 -0
  19. package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/index.html +54 -0
  20. package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/invite-code-generator.html +165 -0
  21. package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/invite-issuance-service.html +198 -0
  22. package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/postgresql.html +165 -0
  23. package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/public-api.html +152 -0
  24. package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/web-get-invite-ui.html +140 -0
  25. package/init-project-html/sample-demo/resources/project-architecture/features/invite-code-registration/index.html +53 -0
  26. package/init-project-html/sample-demo/resources/project-architecture/features/invite-code-registration/postgresql.html +161 -0
  27. package/init-project-html/sample-demo/resources/project-architecture/features/invite-code-registration/public-api.html +145 -0
  28. package/init-project-html/sample-demo/resources/project-architecture/features/invite-code-registration/registration-service.html +190 -0
  29. package/init-project-html/sample-demo/resources/project-architecture/features/invite-code-registration/web-register-ui.html +140 -0
  30. package/init-project-html/sample-demo/resources/project-architecture/index.html +337 -0
  31. package/init-project-html/scripts/architecture.js +496 -0
  32. package/katex/scripts/__pycache__/render_katex.cpython-312.pyc +0 -0
  33. package/lib/cli.js +2 -0
  34. package/lib/tool-runner.js +7 -0
  35. package/merge-conflict-resolver/agents/openai.yaml +5 -0
  36. package/open-github-issue/scripts/__pycache__/open_github_issue.cpython-312.pyc +0 -0
  37. package/package.json +1 -1
  38. package/read-github-issue/scripts/__pycache__/find_issues.cpython-312.pyc +0 -0
  39. package/read-github-issue/scripts/__pycache__/read_issue.cpython-312.pyc +0 -0
  40. package/resolve-review-comments/scripts/__pycache__/review_threads.cpython-312.pyc +0 -0
  41. package/spec-to-project-html/SKILL.md +116 -0
  42. package/spec-to-project-html/agents/openai.yaml +12 -0
  43. package/spec-to-project-html/references/TEMPLATE_SPEC.md +98 -0
  44. package/text-to-short-video/scripts/__pycache__/enforce_video_aspect_ratio.cpython-312.pyc +0 -0
@@ -0,0 +1,12 @@
1
+ interface:
2
+ display_name: "spec-to-project-html"
3
+ short_description: "Sync HTML architecture pages with active planning specs"
4
+ default_prompt: >-
5
+ Use $spec-to-project-html to read docs/plans (spec.md → design.md → contract.md), diff against `resources/project-architecture/` produced by $init-project-html, and patch HTML per `init-project-html/SKILL.md` Rules 1–7 (the authoritative rulebook). Local vocabulary + class-hook + DOM cheat sheet lives in this skill's own `references/TEMPLATE_SPEC.md`. Preserve the two-layer rule throughout.
6
+ The macro `index.html` stays ONE SVG with feature-module clusters AND every sub-module node drawn together, including many-to-many edges, producer/consumer loops, and cross-feature `m-edge--cross` data-row edges; the macro `flow-edge-manifest--macro` mirrors every SVG edge.
7
+ Read strategy (mirrors $init-project-html Rule 3 to avoid context loss). STEP 1: list AFFECTED feature modules from the spec/design diff, plus any feature owning a cross-feature edge into an affected one — without diving into function bodies.
8
+ STEP 2: branch by environment.
9
+ (4A, preferred) with subagents, dispatch ONE read-only subagent per affected feature; each returns a structured CHANGE summary (added/renamed/retired sub-modules, function I/O deltas, variables-with-business-purpose deltas, error deltas, outbound edge changes, `planned` / `gap` markers). The main agent collects every summary first, then patches the macro and pages in one pass.
10
+ (4B, no subagents) handle affected features ONE AT A TIME — deep-read feature A, IMMEDIATELY patch `features/A/index.html` + affected sub-module pages, incrementally patch the macro for A's cluster / nodes / edges (mark edges pointing at unread affected features with `data-edge-target-pending="<future-slug>"`), drop A's function-level details from memory, then move on. After every affected feature is patched, resolve every pending placeholder in a final macro pass. NEVER load every affected feature's source into the main agent context at once.
11
+ Each `features/<slug>/<sub-module>.html` stays self-only: update `sub-io` function table + `sub-vars` variables-with-business-purpose table (sync every renamed / added / removed parameter, local state, struct field, DB column, config knob, counter, or time anchor that influences a business branch, using scope chips `sub-vars__scope--call|tx|persist|instance|loop`) + `sub-dataflow` internal value flow + `sub-errors`. FORBIDDEN on sub-module pages: cross-submodule narrative, `flow-return-row`, or cross-boundary `flow-edge-manifest`.
12
+ Feature `index.html` stays lightweight (story + submodule-nav). Migrate legacy `arch-diagram` or feature-level cross-submodule flowcharts onto the macro when you touch them; keep CSS paths (`assets/` for root, `../../assets/` under features); scaffold via $init-project-html if files are missing. Report which read strategy (4A or 4B) was actually used.
@@ -0,0 +1,98 @@
1
+ # HTML architecture atlas — reference cheat sheet (spec-to-project-html copy)
2
+
3
+ > Reference material only. The **binding rules** (page contracts, naming, assets, accessibility, forbidden shortcuts) live in `init-project-html/SKILL.md` (the atlas authority). `spec-to-project-html/SKILL.md` follows those same Rules 1–7 when patching pages to match active specs. This file is a local glossary + class-hook table + DOM snippets so this skill can stay self-contained when installed alone.
4
+
5
+ ## Vocabulary
6
+
7
+ - **Feature module** — one **user-visible end-to-end capability** (e.g. "invite-code registration", "get-invite-codes"). One directory `features/<feature-slug>/`. It is **not** a single web layer or a single database.
8
+ - **Sub-module** — an implementation boundary inside that capability (front-end page, public API, domain service, PostgreSQL, pure helpers, message queues…). One HTML page per sub-module, sibling to the feature's `index.html`.
9
+
10
+ ## Directory layout (target output)
11
+
12
+ ```text
13
+ resources/project-architecture/
14
+ index.html # macro: feature × sub-module in one SVG with multi-edge + data-row flow
15
+ assets/
16
+ architecture.css
17
+ features/
18
+ <feature-slug>/ # one feature module = one directory
19
+ index.html # lightweight overview (story + submodule nav)
20
+ <sub-module-slug>.html # one HTML per sub-module (own I/O + internal flow)
21
+ ```
22
+
23
+ ## Macro SVG — CSS class hooks
24
+
25
+ | Element | class |
26
+ |---|---|
27
+ | Actor block | `m-actor` |
28
+ | Feature cluster frame | `m-cluster` / `m-cluster__rect` / `m-cluster__title` |
29
+ | Sub-module node | `m-sub` (add `m-sub--db` for databases) |
30
+ | Edge | `m-edge` + modifier `m-edge--call` / `m-edge--return` / `m-edge--cross` |
31
+ | Edge label | `m-edge__label` (cross-feature labels add `m-edge__label--cross`) |
32
+
33
+ ## DOM snippets
34
+
35
+ ### `sub-io` function I/O table
36
+
37
+ ```html
38
+ <section class="sub-io">
39
+ <h2>Function I/O</h2>
40
+ <table>
41
+ <thead><tr><th>Function</th><th>Signature</th><th>Side effects</th><th>Purpose</th></tr></thead>
42
+ <tbody>
43
+ <tr>
44
+ <td><code>FunctionName</code></td>
45
+ <td class="sub-io__signature">
46
+ <strong>in:</strong> <code>T1</code>, <code>T2</code><br>
47
+ <strong>out:</strong> <code>R</code> | <code>ErrX</code>
48
+ </td>
49
+ <td><span class="sub-io__side sub-io__side--pure">pure</span></td>
50
+ <td>One-line purpose.</td>
51
+ </tr>
52
+ </tbody>
53
+ </table>
54
+ </section>
55
+ ```
56
+
57
+ ### `sub-vars` variables-with-business-purpose table
58
+
59
+ ```html
60
+ <section class="sub-vars">
61
+ <h2>Variables &amp; business purpose</h2>
62
+ <p class="sub-vars__intro">Identifiers this sub-module holds or threads through. Types align readers; business purpose comes first.</p>
63
+ <table>
64
+ <thead>
65
+ <tr><th>Variable</th><th>Type</th><th>Scope</th><th>Business purpose</th></tr>
66
+ </thead>
67
+ <tbody>
68
+ <tr>
69
+ <td class="sub-vars__name">someVar</td>
70
+ <td class="sub-vars__type">SomeType</td>
71
+ <td><span class="sub-vars__scope sub-vars__scope--call">call</span></td>
72
+ <td>One line: this value decides branch X; without it Y breaks.</td>
73
+ </tr>
74
+ </tbody>
75
+ </table>
76
+ </section>
77
+ ```
78
+
79
+ Scope chip vocabulary: `sub-vars__scope--call` (single call), `--tx` (transaction-bound), `--persist` (persisted), `--instance` (fixed at construction; lifetime-shared), `--loop` (retry/loop).
80
+
81
+ ### `sub-dataflow` small SVG sizing
82
+
83
+ - Node class: `d-node`; edge class: `d-edge` (side-effect edges use `d-edge--side`).
84
+ - Recommended viewBox: height ≤ 240, width ≤ 720.
85
+ - Nodes are this sub-module's internal variables/functions only.
86
+
87
+ ## Edge-kind vocabulary (for macro `flow-edge-manifest`)
88
+
89
+ | `data-edge-kind` | meaning | typical visual |
90
+ |---|---|---|
91
+ | `call` | function call / HTTP request | solid arrow |
92
+ | `return` | return value / response | thin dashed arrow |
93
+ | `data-row` | cross-feature hand-off via data rows (not a function call) | warm-tone heavy dashed |
94
+ | `failure` | failure branch | red solid arrow with `failure` chip in the manifest row |
95
+
96
+ ## Typography hint
97
+
98
+ Pair a recognisable display face (e.g. `Fraunces`) with `Plus Jakarta Sans`. Avoid the "AI-default purple gradient" and Inter look-alike. Detailed rules live in `init-project-html/SKILL.md` § Rule 6.