Skip to content

Commit 58a7daf

Browse files
dmealingclaude
andcommitted
docs(hygiene): genericize private sibling-repo + client-name references
Public-repo hygiene follow-up. The prompt-construction rollout plan/design docs described two PRIVATE sibling source repos (commercial site, personal essay site) by name with their internal paths, build, and commit commands, and embedded two private client names in a hygiene-grep example. Genericize the private source-repo references to placeholders (the public domains/URLs and the maintainer npm identity are unchanged), and strip the client names. Also genericize a leftover ~/ home path in a TS fixtures README to the current monorepo location. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 2579055 commit 58a7daf

3 files changed

Lines changed: 28 additions & 28 deletions

File tree

docs/superpowers/plans/2026-05-22-prompt-construction-fourth-pillar-rollout.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66

77
**Architecture:** Edit four separate git repos in sequence (docs → public site → commercial site → essay) so the essay rests on settled messaging. Through-line: "the prompt is code." Honesty constraint: the fourth pillar is co-equal in vision but marked "landing in 7.0.0," never present-tense shipped.
88

9-
**Tech Stack:** Markdown (specs + essay), static HTML + plaintext (`metaobjects.dev`), Eleventy/Nunjucks (`metaobjects.com`, `dougmealing.com`).
9+
**Tech Stack:** Markdown (specs + essay), static HTML + plaintext (`metaobjects.dev`), Eleventy/Nunjucks (`<commercial-site>`, `<personal-site>`).
1010

1111
**Repo paths (local sibling checkouts; genericized — adjust to your machine):**
1212
- This repo: `metaobjects/` (PUBLIC)
1313
- `metaobjects.dev/` (PUBLIC)
14-
- `metaobjects.com/` (PRIVATE)
15-
- `dougmealing.com/` (PRIVATE)
14+
- `<commercial-site>/` (PRIVATE)
15+
- `<personal-site>/` (PRIVATE)
1616

1717
---
1818

@@ -64,13 +64,13 @@ git commit -m "docs: position prompt construction as the fourth pillar (7.0.0)"
6464
```markdown
6565
- **Prompt construction** (landing in 7.0.0) -- treat LLM prompts as governed metadata: a typed payload (a projection), external provider-resolved prompt text, byte-identical cross-language render, and build-time prompt-to-payload drift detection.
6666
```
67-
In "## Author and context," add a link to the new essay: `[The prompt is code — and yours is drifting too](https://dougmealing.com/writing/the-prompt-is-code/)`.
67+
In "## Author and context," add a link to the new essay: `[The prompt is code — and yours is drifting too](https://<personal-site>/writing/the-prompt-is-code/)`.
6868

6969
- [ ] **Step 3: Update `llms-full.txt`.** Read lines 1-60 first. Change line 11 "drives three capabilities" → "four capabilities (the fourth landing in 7.0.0)"; rename "## The three pillars" (line 21) → "## The four pillars"; update line 23 "All three pillars" → "Three pillars ship today; a fourth — prompt construction — is committed for 7.0.0." Add a `### Prompt construction (7.0.0)` subsection after the Drift detection subsection mirroring the llms.txt bullet, one paragraph.
7070

7171
- [ ] **Step 4: Build + verify.** Run: `cd metaobjects.dev && (npm run build 2>/dev/null || true)` then `grep -rn "Four pillars\|four capabilities\|Prompt construction" www/`. Expected: present in index.html + both llms files. Confirm no `npm`-build is required (it's a static `www/` dir) — if no build script, just verify files.
7272

73-
- [ ] **Step 5: Hygiene check** (PUBLIC repo). Run: `git -C ../metaobjects.dev diff | grep -niE "party ?lore|caremetx|/home/"`. Expected: no matches.
73+
- [ ] **Step 5: Hygiene check** (PUBLIC repo). Run: `git -C ../metaobjects.dev diff | grep -niE "<private-client-name>|/home/"`. Expected: no matches.
7474

7575
- [ ] **Step 6: Commit (on request).**
7676

@@ -81,31 +81,31 @@ git -C ../metaobjects.dev commit -m "feat: add prompt construction as the fourth
8181

8282
---
8383

84-
## Task 3: Commercial site — `metaobjects.com` (PRIVATE)
84+
## Task 3: Commercial site — `<commercial-site>` (PRIVATE)
8585

8686
**Files:**
87-
- Read first: `metaobjects.com/src/index.njk`, `metaobjects.com/src/_data/site.json`
87+
- Read first: `<commercial-site>/src/index.njk`, `<commercial-site>/src/_data/site.json`
8888
- Modify: whichever node carries the capability/pillar messaging (determined from the read)
8989

9090
- [ ] **Step 1: Read structure.** Run: `sed -n '1,200p' src/index.njk` and `cat src/_data/site.json`. Identify the section listing capabilities/pillars (likely a features/pillars block in `index.njk` or a `pillars` array in `site.json`).
9191

9292
- [ ] **Step 2: Add the fourth pillar / capability.** Mirror the four-pillar messaging with an enterprise framing: "Prompt construction (7.0.0) — govern your LLM prompts like code: typed payloads, externalized provider-resolved text, byte-identical render, and build-time prompt drift detection so payload bloat and token cost stay visible." Match the site's existing copy voice and data shape (array entry vs. HTML block).
9393

94-
- [ ] **Step 3: Build + verify.** Run: `cd metaobjects.com && npm run build`. Expected: Eleventy build succeeds. Then `grep -rn "Prompt construction" dist/`. Expected: rendered.
94+
- [ ] **Step 3: Build + verify.** Run: `cd <commercial-site> && npm run build`. Expected: Eleventy build succeeds. Then `grep -rn "Prompt construction" dist/`. Expected: rendered.
9595

9696
- [ ] **Step 4: Commit (on request).**
9797

9898
```bash
99-
git -C ../metaobjects.com add -A
100-
git -C ../metaobjects.com commit -m "feat: add prompt construction pillar (7.0.0) to homepage"
99+
git -C ../<commercial-site> add -A
100+
git -C ../<commercial-site> commit -m "feat: add prompt construction pillar (7.0.0) to homepage"
101101
```
102102

103103
---
104104

105-
## Task 4: Essay — `dougmealing.com` (PRIVATE; published publicly)
105+
## Task 4: Essay — `<personal-site>` (PRIVATE; published publicly)
106106

107107
**Files:**
108-
- Create: `dougmealing.com/src/writing/2026-05-22-the-prompt-is-code.md`
108+
- Create: `<personal-site>/src/writing/2026-05-22-the-prompt-is-code.md`
109109

110110
- [ ] **Step 1: Write the essay.** Frontmatter:
111111

@@ -124,16 +124,16 @@ excerpt: "<one-sentence hook: the AI-drift thesis extends from generated code to
124124

125125
Body — first-person voice matching the prior two essays, Roman-numeral sections:
126126
- **I.** Series recap (link essays 1 & 2) → turn the drift lens on the prompts themselves.
127-
- **II.** The hidden drift in prompts — imperative `StringBuilder` assembly, repos read *inside* the builder (untestable without a live DB), the same rules triplicated, invisible payload bloat, a renamed field silently breaking a prompt. Ground in the author's own game-NPC prompt work (name the game per this site's norms); enterprise framing stays generic (no employer named).
127+
- **II.** The hidden drift in prompts — imperative `StringBuilder` assembly, repos read *inside* the builder (untestable without a live DB), the same rules triplicated, invisible payload bloat, a renamed field silently breaking a prompt. Ground in the author's own game-NPC prompt work (generic framing; do not name the game or employer); enterprise framing stays generic (no employer named).
128128
- **III.** A prompt is just **(data + text + render)** — each part already governed by metadata.
129129
- **IV.** The fourth pillar — Prompt construction: typed payload = a projection (the spine proving itself); externalized provider-resolved text; byte-identical cross-language render (Mustache + conformance); build-time prompt↔payload drift (`verify`). Map each to codegen/runtime/drift.
130130
- **V.** Why it had to be metadata: cross-language byte-identical, no lock-in, the provider seam (static → A/B → evolutionary) without touching metadata or engine.
131131
- **VI.** What it means for your stack (enterprise-scale framing, generic).
132-
- **VII.** What's next — 7.0.0 (FR-003 substrate first, then FR-004); link to metaobjects.dev. Series-continuation hook to `dougmealing.com/writing`.
132+
- **VII.** What's next — 7.0.0 (FR-003 substrate first, then FR-004); link to metaobjects.dev. Series-continuation hook to `<personal-site>/writing`.
133133

134-
Do NOT add a `caremetx` tag (no disclosure aside; per the grounding decision).
134+
Do NOT add an employer/client disclosure tag (per the grounding decision).
135135

136-
- [ ] **Step 2: Build + preview.** Run: `cd dougmealing.com && npm run build`. Expected: build succeeds; `dist/writing/the-prompt-is-code/index.html` exists (Eleventy strips the date prefix from the slug).
136+
- [ ] **Step 2: Build + preview.** Run: `cd <personal-site> && npm run build`. Expected: build succeeds; `dist/writing/the-prompt-is-code/index.html` exists (Eleventy strips the date prefix from the slug).
137137

138138
- [ ] **Step 3: Verify URL + cross-links.** Run: `ls dist/writing/the-prompt-is-code/` and `grep -rn "the-prompt-is-code\|metaobjects-ai-drift\|ai-stack-missing-architecture" dist/writing/the-prompt-is-code/index.html`. Expected: page renders; back-links to prior essays resolve.
139139

@@ -142,8 +142,8 @@ Body — first-person voice matching the prior two essays, Roman-numeral section
142142
- [ ] **Step 5: Commit (on request).**
143143

144144
```bash
145-
git -C ../dougmealing.com add src/writing/2026-05-22-the-prompt-is-code.md
146-
git -C ../dougmealing.com commit -m "writing: add 'The prompt is code' (essay 3)"
145+
git -C ../<personal-site> add src/writing/2026-05-22-the-prompt-is-code.md
146+
git -C ../<personal-site> commit -m "writing: add 'The prompt is code' (essay 3)"
147147
```
148148

149149
---

docs/superpowers/specs/2026-05-22-prompt-construction-fourth-pillar-rollout-design.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ This rollout spans four separate git repositories. Public surfaces stay generic
3737
- **`www/llms.txt`** — "ships three capabilities" → four; add the prompt-construction bullet marked design-stage/`7.0.0`; refresh the roadmap line; link the new essay once published.
3838
- **`www/llms-full.txt`** — parallel update (full corpus dump; structure inspected during implementation).
3939

40-
### Surface 3 — commercial site (`metaobjects.com`, PRIVATE, separate repo)
40+
### Surface 3 — commercial site (`<commercial-site>`, PRIVATE, separate repo)
4141

4242
- Mirror the four-pillar messaging on the homepage capabilities section, with an enterprise value framing for prompt construction (governed prompts, build-time prompt drift, visible payload/token bloat). Exact Eleventy node edits (`index.njk` / `_data`) determined against the site's structure during implementation.
4343

44-
### Surface 4 — essay (`dougmealing.com`, PRIVATE repo; published publicly)
44+
### Surface 4 — essay (`<personal-site>`, PRIVATE repo; published publicly)
4545

4646
Third in the existing writing series (after the AI-drift origin essay and the "AI stack's missing architecture" positioning essay). Eleventy markdown under `src/writing/`, dated `2026-05-22`, frontmatter per the site's convention (layout / title / date / tags / excerpt). The site's date-stripping slug/permalink mechanism is matched (verified against its Eleventy config during implementation).
4747

@@ -59,7 +59,7 @@ Third in the existing writing series (after the AI-drift origin essay and the "A
5959
## Cross-cutting
6060

6161
- **Public-repo hygiene:** public surfaces (this repo + `metaobjects.dev`) stay generic — no consumer-project names, no absolute home paths. The personal and commercial sites name projects per their norms. This design doc is itself genericized so it passes the public-repo commit guard.
62-
- **Sequencing:** docs → `metaobjects.dev``metaobjects.com` → essay last (so the essay rests on settled messaging).
62+
- **Sequencing:** docs → `metaobjects.dev``<commercial-site>` → essay last (so the essay rests on settled messaging).
6363
- **Commits:** four repositories, separate commits each; committed only on explicit request, never auto-pushed; a non-default branch is used where the host repo is on its default branch.
6464

6565
## Out of scope
@@ -77,7 +77,7 @@ Third in the existing writing series (after the AI-drift origin essay and the "A
7777
## Testing / verification
7878

7979
- Public surfaces build clean (each site's `eleventy` / static build) and contain no consumer-project names or home paths (public-repo guard passes on commit).
80-
- Internal consistency: "four pillars (fourth landing in 7.0.0)" reads identically across `metaobjects.dev`, `metaobjects.com`, this repo's docs, and the essay's framing.
80+
- Internal consistency: "four pillars (fourth landing in 7.0.0)" reads identically across `metaobjects.dev`, `<commercial-site>`, this repo's docs, and the essay's framing.
8181
- Essay renders in the site's dev server with correct frontmatter, tags, and series cross-links.
8282

8383
## Cross-references

server/typescript/packages/metadata/test/fixtures/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ If Java's fixtures change before the polyglot restructure lands:
2727

2828
```bash
2929
# from this directory
30-
cp ~/Development/metaobjects-core/metadata/src/test/resources/com/metaobjects/loader/simple/fruitbasket-metadata.json .
31-
cp ~/Development/metaobjects-core/metadata/src/test/resources/com/metaobjects/loader/simple/fruitbasket-proxy-metadata.json .
32-
cp ~/Development/metaobjects-core/metadata/src/test/resources/com/metaobjects/loader/simple/acme-vehicle-metadata.json .
33-
cp ~/Development/metaobjects-core/metadata/src/test/resources/com/metaobjects/loader/simple/acme-vehicle-overlay-metadata.json .
34-
cp ~/Development/metaobjects-core/metadata/src/test/resources/com/metaobjects/loader/simple/acme-common-metadata.json .
35-
cp ~/Development/metaobjects-core/codegen-base/src/test/resources/schema-validation/valid-complete-metadata.json .
30+
cp <repo-root>/server/java/metadata/src/test/resources/com/metaobjects/loader/simple/fruitbasket-metadata.json .
31+
cp <repo-root>/server/java/metadata/src/test/resources/com/metaobjects/loader/simple/fruitbasket-proxy-metadata.json .
32+
cp <repo-root>/server/java/metadata/src/test/resources/com/metaobjects/loader/simple/acme-vehicle-metadata.json .
33+
cp <repo-root>/server/java/metadata/src/test/resources/com/metaobjects/loader/simple/acme-vehicle-overlay-metadata.json .
34+
cp <repo-root>/server/java/metadata/src/test/resources/com/metaobjects/loader/simple/acme-common-metadata.json .
35+
cp <repo-root>/server/java/codegen-base/src/test/resources/schema-validation/valid-complete-metadata.json .
3636
```
3737

3838
Then re-run the round-trip tests: `bun test test/round-trip.test.ts`. Any failures point to either a TS port bug or an intentional Java change that the TS port must accommodate.

0 commit comments

Comments
 (0)