compounding-loop 0.4.0 → 0.6.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 +152 -128
- package/dist/cli/draft.js +69 -0
- package/dist/cli/draft.js.map +1 -0
- package/dist/cli/eval.js +186 -0
- package/dist/cli/eval.js.map +1 -0
- package/dist/cli/hook.js +92 -0
- package/dist/cli/hook.js.map +1 -0
- package/dist/cli/index.js +336 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.js +41 -4
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/lanesInit.js +8 -2
- package/dist/cli/lanesInit.js.map +1 -1
- package/dist/cli/pace.js +41 -0
- package/dist/cli/pace.js.map +1 -0
- package/dist/cli/pause.js +3 -3
- package/dist/cli/pause.js.map +1 -1
- package/dist/cli/recipe.js +89 -0
- package/dist/cli/recipe.js.map +1 -0
- package/dist/cli/recipeDraft.js +64 -0
- package/dist/cli/recipeDraft.js.map +1 -0
- package/dist/cli/runs.js +49 -11
- package/dist/cli/runs.js.map +1 -1
- package/dist/cli/schedule.js +177 -0
- package/dist/cli/schedule.js.map +1 -0
- package/dist/core/brief.js +35 -12
- package/dist/core/brief.js.map +1 -1
- package/dist/core/draftBrief.js +68 -0
- package/dist/core/draftBrief.js.map +1 -0
- package/dist/core/eval.js +123 -0
- package/dist/core/eval.js.map +1 -0
- package/dist/core/hooksInit.js +54 -0
- package/dist/core/hooksInit.js.map +1 -0
- package/dist/core/laneRound.js +28 -7
- package/dist/core/laneRound.js.map +1 -1
- package/dist/core/lanes.js +3 -0
- package/dist/core/lanes.js.map +1 -1
- package/dist/core/lanesInit.js +19 -0
- package/dist/core/lanesInit.js.map +1 -1
- package/dist/core/parse/index.js +8 -0
- package/dist/core/parse/index.js.map +1 -1
- package/dist/core/parse/outcomes.js +51 -0
- package/dist/core/parse/outcomes.js.map +1 -0
- package/dist/core/parse/policy.js +56 -0
- package/dist/core/parse/policy.js.map +1 -0
- package/dist/core/parse/runs.js +1 -0
- package/dist/core/parse/runs.js.map +1 -1
- package/dist/core/parse/schedule.js +101 -0
- package/dist/core/parse/schedule.js.map +1 -0
- package/dist/core/parse/steer.js +68 -0
- package/dist/core/parse/steer.js.map +1 -0
- package/dist/core/recipeDraft.js +37 -0
- package/dist/core/recipeDraft.js.map +1 -0
- package/dist/core/recipes.js +185 -0
- package/dist/core/recipes.js.map +1 -0
- package/dist/core/repo.js +16 -1
- package/dist/core/repo.js.map +1 -1
- package/dist/core/triggers.js +137 -0
- package/dist/core/triggers.js.map +1 -0
- package/dist/server/actionBody.js +54 -0
- package/dist/server/actionBody.js.map +1 -0
- package/dist/server/checkLabels.js +7 -2
- package/dist/server/checkLabels.js.map +1 -1
- package/dist/server/claude.js +18 -0
- package/dist/server/claude.js.map +1 -0
- package/dist/server/controls.js +28 -1
- package/dist/server/controls.js.map +1 -1
- package/dist/server/data.js +8 -3
- package/dist/server/data.js.map +1 -1
- package/dist/server/draftInputs.js +33 -0
- package/dist/server/draftInputs.js.map +1 -0
- package/dist/server/health.js +3 -3
- package/dist/server/health.js.map +1 -1
- package/dist/server/index.js +55 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/laneChecks.js +1 -1
- package/dist/server/laneChecks.js.map +1 -1
- package/dist/server/laneSchedule.js +15 -0
- package/dist/server/laneSchedule.js.map +1 -0
- package/dist/server/live/build.js +25 -10
- package/dist/server/live/build.js.map +1 -1
- package/dist/server/live/index.js +4 -2
- package/dist/server/live/index.js.map +1 -1
- package/dist/server/live/urls.js +3 -1
- package/dist/server/live/urls.js.map +1 -1
- package/dist/server/loops.js +145 -20
- package/dist/server/loops.js.map +1 -1
- package/dist/server/memory.js +115 -0
- package/dist/server/memory.js.map +1 -0
- package/dist/server/memory.json +398 -0
- package/dist/server/paceNote.js +13 -0
- package/dist/server/paceNote.js.map +1 -0
- package/dist/server/roundState.js +26 -2
- package/dist/server/roundState.js.map +1 -1
- package/dist/server/runs.js +72 -9
- package/dist/server/runs.js.map +1 -1
- package/dist/server/shipped.js +35 -0
- package/dist/server/shipped.js.map +1 -0
- package/dist/server/static-export.js +8 -2
- package/dist/server/static-export.js.map +1 -1
- package/dist/server/this-repo.json +2367 -858
- package/dist/web/assets/index-C5q9d5-n.css +2 -0
- package/dist/web/assets/index-DDEAcJFt.js +123 -0
- package/dist/web/index.html +2 -2
- package/method/COMPOUNDING_LOOP.md +33 -6
- package/method/operating-card.md +1 -1
- package/method/retro.md +4 -3
- package/package.json +4 -4
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/commands/loop-init.md +1 -0
- package/plugin/commands/retro.md +3 -2
- package/plugin/hooks/hooks.json +62 -0
- package/runners/github-actions/lanes.yml +2 -2
- package/runners/routine/README.md +4 -0
- package/runners/routine/control-room-prompt.md +4 -14
- package/runners/routine/lane-prompt.md +4 -10
- package/templates/lanes/README.md +5 -1
- package/templates/lanes/claude-section.md +1 -0
- package/templates/lanes/control-run.md +37 -0
- package/templates/lanes/lane-run.md +33 -0
- package/templates/lanes/schedule.json +4 -0
- package/templates/lanes/steer.md +3 -0
- package/templates/recipe.md +39 -0
- package/templates/recipes/cli-command-json.md +47 -0
- package/templates/recipes/static-calculator-site.md +50 -0
- package/templates/static-site/CLAUDE.md +1 -1
- package/dist/web/assets/index-BOPytDNU.js +0 -53
- package/dist/web/assets/index-BSHEI7fa.css +0 -2
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: R-static-calculator-site
|
|
3
|
+
title: Add a calculator page to a static niche site
|
|
4
|
+
kind: feature
|
|
5
|
+
stack:
|
|
6
|
+
- node@20
|
|
7
|
+
tags:
|
|
8
|
+
- calculator
|
|
9
|
+
- static
|
|
10
|
+
- seo
|
|
11
|
+
- html
|
|
12
|
+
status: CONFIRMED
|
|
13
|
+
source: Minntooos/Compounding-Loop templates/static-site, five live sites built unattended in round 1
|
|
14
|
+
uses: 0
|
|
15
|
+
passes: 0
|
|
16
|
+
updated: 2026-10-14
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
A static site (plain HTML, CSS and ES modules, no build step) needs one more tool page: a calculator or converter that must be correct and rank for one search intent. Not for sites with a build step or a backend.
|
|
22
|
+
|
|
23
|
+
## Steps
|
|
24
|
+
|
|
25
|
+
1. Put the formula in a pure function in `site/js/lib/<topic>.js`, no DOM access. Proof: `npm run unit` imports it.
|
|
26
|
+
2. Write `tests/unit/<topic>.test.mjs` (`node:test`) with at least two reference cases from an authoritative source (URL in a comment above each) and the edges: zero, empty, impossible input, both unit directions. Proof: `npm run unit`.
|
|
27
|
+
3. Make the page `site/<slug>/index.html`, slug lowercase and keyword-first, with `<title>`, a meta description of at most 160 characters, one `<h1>`, a canonical on the site's own host, and JSON-LD. Proof: `npm run check`.
|
|
28
|
+
4. Add the page script as an external module (no inline script or handler); show a clear message for bad input, never `NaN`, `Infinity` or `undefined`. Write results with `textContent`. Proof: `npm run check`.
|
|
29
|
+
5. Write 300+ original visible words: how to use it, how it is calculated, a worked example, a short FAQ. Proof: `npm run check`.
|
|
30
|
+
6. Link the page from the home page and from related pages, and add its URL to `site/sitemap.xml`. Proof: `npm run check`.
|
|
31
|
+
7. Run everything and fix what the messages say. Proof: `npm test`.
|
|
32
|
+
|
|
33
|
+
## Traps
|
|
34
|
+
|
|
35
|
+
- A test that re-derives your own formula proves nothing; take the cases from a source (K-0003 in the starter kit).
|
|
36
|
+
- Never change a published URL; add a 301 redirect to both `netlify.toml` and `vercel.json` if you must.
|
|
37
|
+
- A sitemap entry is easy to forget; the check fails without it.
|
|
38
|
+
- Inline scripts, `innerHTML` with user input and CDN scripts break the CSP; use modules and `textContent`.
|
|
39
|
+
- Pages that differ by one swapped word are doorway pages; the check fails above 60% shared phrasing.
|
|
40
|
+
- Meta descriptions over 160 characters are cut in results.
|
|
41
|
+
|
|
42
|
+
## Checks
|
|
43
|
+
|
|
44
|
+
- `npm run check`
|
|
45
|
+
- `npm run unit`
|
|
46
|
+
- `npm test`
|
|
47
|
+
|
|
48
|
+
## Start from
|
|
49
|
+
|
|
50
|
+
- `templates/static-site` in the Compounding Loop package (`loop new` copies it): `site/`, `scripts/check.mjs`, `tests/`.
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
|
|
60
60
|
> The full method is in `.ai/method.md`. The § numbers point to Part B there.
|
|
61
61
|
|
|
62
|
-
**Objective:** the most verified-correct results per minute of the owner's attention
|
|
62
|
+
**Objective:** the most verified-correct results per minute of the owner's attention, from the smallest context that still passes. A wrong result that looks right is the most expensive one. Tokens are spent where they buy correctness (checks, review), not on re-learning what a recipe, a trigger or a check already knows.
|
|
63
63
|
|
|
64
64
|
**Start of every session**
|
|
65
65
|
1. Read `.ai/index.md`. Open a knowledge entry only when it's relevant to what you're doing.
|