@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.
- package/AGENTS.md +2 -0
- package/CHANGELOG.md +17 -0
- package/README.md +6 -0
- package/analyse-app-logs/scripts/__pycache__/filter_logs_by_time.cpython-312.pyc +0 -0
- package/analyse-app-logs/scripts/__pycache__/log_cli_utils.cpython-312.pyc +0 -0
- package/analyse-app-logs/scripts/__pycache__/search_logs.cpython-312.pyc +0 -0
- package/cjk-pdf/agents/openai.yaml +5 -0
- package/docs-to-voice/scripts/__pycache__/docs_to_voice.cpython-312.pyc +0 -0
- package/generate-spec/SKILL.md +24 -4
- package/generate-spec/agents/openai.yaml +1 -0
- package/generate-spec/references/TEMPLATE_SPEC.md +98 -0
- package/generate-spec/scripts/__pycache__/create-specscpython-312.pyc +0 -0
- package/init-project-html/SKILL.md +181 -0
- package/init-project-html/agents/openai.yaml +13 -0
- package/init-project-html/references/TEMPLATE_SPEC.md +98 -0
- package/init-project-html/references/architecture-page.template.html +35 -0
- package/init-project-html/references/architecture.css +1059 -0
- package/init-project-html/sample-demo/resources/project-architecture/assets/architecture.css +1059 -0
- package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/index.html +54 -0
- package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/invite-code-generator.html +165 -0
- package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/invite-issuance-service.html +198 -0
- package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/postgresql.html +165 -0
- package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/public-api.html +152 -0
- package/init-project-html/sample-demo/resources/project-architecture/features/get-invite-codes/web-get-invite-ui.html +140 -0
- package/init-project-html/sample-demo/resources/project-architecture/features/invite-code-registration/index.html +53 -0
- package/init-project-html/sample-demo/resources/project-architecture/features/invite-code-registration/postgresql.html +161 -0
- package/init-project-html/sample-demo/resources/project-architecture/features/invite-code-registration/public-api.html +145 -0
- package/init-project-html/sample-demo/resources/project-architecture/features/invite-code-registration/registration-service.html +190 -0
- package/init-project-html/sample-demo/resources/project-architecture/features/invite-code-registration/web-register-ui.html +140 -0
- package/init-project-html/sample-demo/resources/project-architecture/index.html +337 -0
- package/init-project-html/scripts/architecture.js +496 -0
- package/katex/scripts/__pycache__/render_katex.cpython-312.pyc +0 -0
- package/lib/cli.js +2 -0
- package/lib/tool-runner.js +7 -0
- package/merge-conflict-resolver/agents/openai.yaml +5 -0
- package/open-github-issue/scripts/__pycache__/open_github_issue.cpython-312.pyc +0 -0
- package/package.json +1 -1
- package/read-github-issue/scripts/__pycache__/find_issues.cpython-312.pyc +0 -0
- package/read-github-issue/scripts/__pycache__/read_issue.cpython-312.pyc +0 -0
- package/resolve-review-comments/scripts/__pycache__/review_threads.cpython-312.pyc +0 -0
- package/spec-to-project-html/SKILL.md +116 -0
- package/spec-to-project-html/agents/openai.yaml +12 -0
- package/spec-to-project-html/references/TEMPLATE_SPEC.md +98 -0
- 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 & 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.
|