@topy-ai/maggie 0.7.43 → 0.7.45
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-zh-TW.md +26 -6
- package/README.md +47 -12
- package/bin/maggie.js +205 -56
- package/bundled-skills/maggie-blog-bootstrap/SKILL.md +7 -7
- package/bundled-skills/maggie-clone/SKILL.md +14 -14
- package/bundled-skills/maggie-clone-to-template/SKILL.md +11 -11
- package/bundled-skills/maggie-clone-to-template/references/workflow.md +2 -2
- package/bundled-skills/maggie-content-localization/SKILL.md +10 -10
- package/bundled-skills/maggie-deployment/SKILL.md +8 -8
- package/bundled-skills/maggie-deployment/references/vps.md +4 -4
- package/bundled-skills/maggie-design/SKILL.md +12 -12
- package/bundled-skills/maggie-marketplace/SKILL.md +12 -12
- package/bundled-skills/maggie-ops/SKILL.md +6 -6
- package/bundled-skills/maggie-project-context/SKILL.md +1 -1
- package/bundled-skills/maggie-seo-geo/SKILL.md +2 -2
- package/bundled-skills/maggie-service-booking/SKILL.md +24 -24
- package/bundled-skills/maggie-social-share/SKILL.md +2 -2
- package/bundled-skills/maggie-template/SKILL.md +5 -5
- package/package.json +1 -1
|
@@ -29,10 +29,10 @@ Invoke it as:
|
|
|
29
29
|
The executable workflow is resumable:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
|
|
32
|
+
maggie tool maggie_clone.py run <homepage-url> \
|
|
33
33
|
--project <project-root> --run-id <stable-run-id>
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
maggie tool maggie_clone.py status --project <project-root> --run-id <stable-run-id>
|
|
35
|
+
maggie tool maggie_clone.py run --project <project-root> --run-id <stable-run-id>
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
Each run persists `manifest.json`, `state.json`, and phase outputs under
|
|
@@ -111,9 +111,9 @@ editing and report the missing capability.
|
|
|
111
111
|
2. Run:
|
|
112
112
|
|
|
113
113
|
```bash
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
maggie tool maggie.py status <project-root>
|
|
115
|
+
maggie tool maggie.py doctor <project-root> --require-bootstrap --strict
|
|
116
|
+
maggie tool maggie_clone.py init <homepage-url> --project <project-root> --run-id <stable-run-id>
|
|
117
117
|
```
|
|
118
118
|
|
|
119
119
|
The clone run emits collision-resistant site/page keys and creates a
|
|
@@ -147,10 +147,10 @@ shared foundation files that may change
|
|
|
147
147
|
Inspect the target before building it. Run the executable capture first:
|
|
148
148
|
|
|
149
149
|
```bash
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
150
|
+
maggie tool maggie_clone.py capture --project <project-root> --run-id <run-id>
|
|
151
|
+
maggie tool maggie_clone.py extract --project <project-root> --run-id <run-id>
|
|
152
|
+
maggie tool maggie_clone.py assets --project <project-root> --run-id <run-id>
|
|
153
|
+
maggie tool maggie_design_system.py generate \
|
|
154
154
|
--project <project-root> --sample <industry-design-reference> \
|
|
155
155
|
--run-id <run-id> --output DESIGN.md
|
|
156
156
|
```
|
|
@@ -267,7 +267,7 @@ For the homepage target:
|
|
|
267
267
|
required viewports. Use the executable comparison gate:
|
|
268
268
|
|
|
269
269
|
```bash
|
|
270
|
-
|
|
270
|
+
maggie tool maggie_clone.py compare --project <project-root> --run-id <run-id> --local-url <local-or-staging-url>
|
|
271
271
|
```
|
|
272
272
|
|
|
273
273
|
Review `visual-diff/report.json` and the generated diff images; fix measured
|
|
@@ -277,9 +277,9 @@ For the homepage target:
|
|
|
277
277
|
5. Run the run artifact gate and then:
|
|
278
278
|
|
|
279
279
|
```bash
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
280
|
+
maggie tool site_audit.py <local-or-production-url> --json
|
|
281
|
+
maggie tool maggie.py doctor <project-root> --require-bootstrap --strict
|
|
282
|
+
maggie tool maggie_clone.py verify --project <project-root> --run-id <run-id>
|
|
283
283
|
```
|
|
284
284
|
|
|
285
285
|
Do not claim pixel fidelity when a target asset, authenticated state, blocked
|
|
@@ -29,18 +29,18 @@ evidence.
|
|
|
29
29
|
For deterministic execution, use the stable checkpoints:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
maggie tool maggie_clone_to_template.py plan <url> "<approved brief>" --rename <template-id>
|
|
33
|
+
maggie tool maggie_clone_to_template.py clone <template-id>
|
|
34
|
+
maggie tool maggie_clone_to_template.py package <template-id>
|
|
35
|
+
maggie tool maggie_clone_to_template.py design-review <template-id>
|
|
36
|
+
maggie tool maggie_clone_to_template.py validate <template-id>
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
If the brief explicitly names a target brand, run the separate Maggie Design
|
|
40
40
|
rebrand checkpoint after packaging and before review:
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
|
|
43
|
+
maggie tool maggie_design.py rebrand \
|
|
44
44
|
--template marketplace/templates/<template-id> \
|
|
45
45
|
--source-brand "Source Brand" --brand "Target Brand"
|
|
46
46
|
```
|
|
@@ -54,7 +54,7 @@ and the approved colour palette byte-for-byte.
|
|
|
54
54
|
convenience orchestration command that executes the same checkpoints in order:
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
|
|
57
|
+
maggie tool maggie_clone_to_template.py run <url> \
|
|
58
58
|
"Use a compact editorial layout, keep the existing copy, and use warm gold accents." \
|
|
59
59
|
--rename <template-id> --category <category> --tag <tag>
|
|
60
60
|
```
|
|
@@ -80,15 +80,15 @@ template ID, then run the stable CLIs above. If the turn ends at any gate,
|
|
|
80
80
|
continue with:
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
|
|
83
|
+
maggie tool maggie_clone_to_template.py resume <template-id>
|
|
84
84
|
```
|
|
85
85
|
|
|
86
86
|
After applying the prompt, run the review and validation checkpoints:
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
|
-
|
|
89
|
+
maggie tool maggie_clone_to_template.py review <template-id> \
|
|
90
90
|
--source-dir <source-screenshot-dir>
|
|
91
|
-
|
|
91
|
+
maggie tool maggie_clone_to_template.py validate <template-id>
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
`review` writes `visual-review/report.json` and three current screenshots. It
|
|
@@ -123,7 +123,7 @@ fails closed unless all three source screenshots can be compared; use
|
|
|
123
123
|
7. Run:
|
|
124
124
|
|
|
125
125
|
```bash
|
|
126
|
-
|
|
126
|
+
maggie tool maggie_marketplace.py validate marketplace/templates/<id>
|
|
127
127
|
```
|
|
128
128
|
|
|
129
129
|
7. Sync only the approved metadata and previews to the public registry. Keep
|
|
@@ -67,7 +67,7 @@ Rebranding and review are separate actions. If the approved brief names a
|
|
|
67
67
|
target brand, run the explicit rebrand command before review:
|
|
68
68
|
|
|
69
69
|
```bash
|
|
70
|
-
|
|
70
|
+
maggie tool maggie_design.py rebrand \
|
|
71
71
|
--template marketplace/templates/<id> \
|
|
72
72
|
--source-brand "Source Brand" --brand "Target Brand"
|
|
73
73
|
```
|
|
@@ -79,7 +79,7 @@ validation.
|
|
|
79
79
|
After marketplace import, call the homepage-review mode of `maggie-design`:
|
|
80
80
|
|
|
81
81
|
```bash
|
|
82
|
-
|
|
82
|
+
maggie tool maggie_design.py review \
|
|
83
83
|
--template marketplace/templates/<id> \
|
|
84
84
|
--source-dir <verified-maggie-clone-screenshot-dir>
|
|
85
85
|
```
|
|
@@ -80,24 +80,24 @@ advisory and never bypasses validation or owner/Admin approval.
|
|
|
80
80
|
## Stable CLI
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
|
|
83
|
+
maggie tool maggie_localization.py plan \
|
|
84
84
|
--project . --content content.json --source-lang en --target-lang zh-Hans \
|
|
85
85
|
--market uk --operation translate --locale zh-Hans-GB
|
|
86
|
-
|
|
86
|
+
maggie tool maggie_localization.py extract --project . --source-dir src \
|
|
87
87
|
--routes-file docs/routes.tsv --output .maggie/localization/source.json
|
|
88
|
-
|
|
88
|
+
maggie tool maggie_localization.py plan --project . --content content.json \
|
|
89
89
|
--source .maggie/localization/source.json --source-lang en --target-lang zh-Hans \
|
|
90
90
|
--market uk --operation translate --locale zh-Hans-GB
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
maggie tool maggie_localization.py preview .maggie/localization/<job>.json
|
|
92
|
+
maggie tool maggie_localization.py validate .maggie/localization/<job>.json
|
|
93
|
+
maggie tool maggie_localization.py validate .maggie/localization/<job>.json \
|
|
94
94
|
--source .maggie/localization/source.json \
|
|
95
95
|
--render-report .maggie/localization/rendered.json
|
|
96
|
-
|
|
96
|
+
maggie tool maggie_localization.py review .maggie/localization/<job>.json \
|
|
97
97
|
--reviewer owner@example.com --decision approve
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
maggie tool maggie_localization.py publish .maggie/localization/<job>.json --confirm
|
|
99
|
+
maggie tool maggie_localization.py stale --project .
|
|
100
|
+
maggie tool maggie_localization.py glossary --project .
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
Operations are distinct: `translate` preserves meaning, `polish` improves
|
|
@@ -136,7 +136,7 @@ configuration under `.maggie/deployment`; merely creating the directory is not
|
|
|
136
136
|
enough:
|
|
137
137
|
|
|
138
138
|
```bash
|
|
139
|
-
|
|
139
|
+
maggie tool maggie_deployment.py /path/to/project \
|
|
140
140
|
--target cloudflare --environment staging \
|
|
141
141
|
--output .maggie/deployment-preflight.json
|
|
142
142
|
```
|
|
@@ -188,7 +188,7 @@ read-only check.
|
|
|
188
188
|
Generate a reviewable VPS plan and configuration artifacts locally:
|
|
189
189
|
|
|
190
190
|
```bash
|
|
191
|
-
|
|
191
|
+
maggie tool maggie_deployment.py /path/to/project \
|
|
192
192
|
--vps-plan --domain example.co.uk --service example \
|
|
193
193
|
--release-root /var/www/example \
|
|
194
194
|
--node-port 4321 \
|
|
@@ -224,7 +224,7 @@ preserve the `current` target and rollback target, and review prune candidates
|
|
|
224
224
|
before any operator executes cleanup. Generate a read-only candidate report:
|
|
225
225
|
|
|
226
226
|
```bash
|
|
227
|
-
|
|
227
|
+
maggie tool maggie_deployment.py --retention-plan \
|
|
228
228
|
--release-root /var/www/example \
|
|
229
229
|
--current-link /var/www/example/current \
|
|
230
230
|
--keep-releases 2 --output .maggie/deployment/retention-plan.json
|
|
@@ -236,7 +236,7 @@ retained releases.
|
|
|
236
236
|
Validate the database release separately before a VPS migration:
|
|
237
237
|
|
|
238
238
|
```bash
|
|
239
|
-
|
|
239
|
+
maggie tool maggie_migration.py .maggie/migration-release.json \
|
|
240
240
|
--environment staging --output .maggie/migration-preflight.json
|
|
241
241
|
```
|
|
242
242
|
|
|
@@ -288,7 +288,7 @@ Validate and materialise scheduled jobs only after their quota and lock policy
|
|
|
288
288
|
has been reviewed:
|
|
289
289
|
|
|
290
290
|
```bash
|
|
291
|
-
|
|
291
|
+
maggie tool maggie_schedule.py .maggie/schedule.json \
|
|
292
292
|
--units-dir .maggie/deployment/schedules
|
|
293
293
|
```
|
|
294
294
|
|
|
@@ -306,7 +306,7 @@ explicit editorial approval for all launch category copy; rendered draft
|
|
|
306
306
|
evidence is not publication approval:
|
|
307
307
|
|
|
308
308
|
```bash
|
|
309
|
-
|
|
309
|
+
maggie tool maggie_release.py /path/to/project \
|
|
310
310
|
--environment staging --target vps-with-cloudflare-dns \
|
|
311
311
|
--base-url https://staging.example.com
|
|
312
312
|
```
|
|
@@ -328,7 +328,7 @@ Generate a repeatable VPS runner as part of the plan. A deploy step that exists
|
|
|
328
328
|
only in an operator's shell history is not a release contract:
|
|
329
329
|
|
|
330
330
|
```bash
|
|
331
|
-
|
|
331
|
+
maggie tool maggie_deployment.py /path/to/project \
|
|
332
332
|
--vps-plan --domain example.co.uk --service example \
|
|
333
333
|
--release-root /var/www/example \
|
|
334
334
|
--runner-output .maggie/deployment/release-runner.sh
|
|
@@ -348,7 +348,7 @@ production-only evidence.
|
|
|
348
348
|
|
|
349
349
|
## Required workflow
|
|
350
350
|
|
|
351
|
-
1. Run `
|
|
351
|
+
1. Run `maggie tool maggie.py analyze <project> --save` and inspect the
|
|
352
352
|
selected framework, runtime, build/deploy commands, route inventory, data
|
|
353
353
|
layer, and deployment risks.
|
|
354
354
|
2. Confirm the target, domain, environment (`staging` or `production`), data
|
|
@@ -26,7 +26,7 @@ routes remain authenticated and `noindex`.
|
|
|
26
26
|
## Required preflight
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
|
|
29
|
+
maggie tool maggie_deployment.py . \
|
|
30
30
|
--target vps-with-cloudflare-dns \
|
|
31
31
|
--environment staging \
|
|
32
32
|
--output .maggie/deployment-preflight.json
|
|
@@ -86,7 +86,7 @@ this pattern assumes.
|
|
|
86
86
|
Create a local, secret-free plan before remote execution:
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
|
-
|
|
89
|
+
maggie tool maggie_deployment.py . --vps-plan \
|
|
90
90
|
--domain example.co.uk --service example \
|
|
91
91
|
--release-root /var/www/example \
|
|
92
92
|
--node-port 4321 \
|
|
@@ -102,7 +102,7 @@ canonical HTTPS `allowedDomains` plus trusted `X-Forwarded-Host`/
|
|
|
102
102
|
Use a dedicated least-privilege deployer when generating the plan:
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
|
-
|
|
105
|
+
maggie tool maggie_deployment.py . --vps-plan \
|
|
106
106
|
--domain example.co.uk --service example --node-port 4321 \
|
|
107
107
|
--deployer-user maggie-deploy
|
|
108
108
|
```
|
|
@@ -116,7 +116,7 @@ Review the generated systemd and Nginx files, then obtain explicit approval
|
|
|
116
116
|
before installing them on a host.
|
|
117
117
|
|
|
118
118
|
Database safety is a separate gate. Run
|
|
119
|
-
`
|
|
119
|
+
`maggie tool maggie_migration.py <manifest> --environment staging`
|
|
120
120
|
before staging migration and require a successful restore test before a
|
|
121
121
|
production release. Keep the backup artifact and migration version in the
|
|
122
122
|
handover record; never put a database URL or password in the manifest.
|
|
@@ -131,17 +131,17 @@ Run the complete clone workflow first. After the full target page has been
|
|
|
131
131
|
built, compared, and verified, create the reconciliation contract:
|
|
132
132
|
|
|
133
133
|
```bash
|
|
134
|
-
|
|
134
|
+
maggie tool maggie_design.py <target-url1> [<target-url2> ...] \\
|
|
135
135
|
--project <project-root> --clone-run <verified-clone-run-id> --save
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
The design contract also has a resumable CLI workflow:
|
|
139
139
|
|
|
140
140
|
```bash
|
|
141
|
-
|
|
141
|
+
maggie tool maggie_design.py run <target-url1> [<target-url2> ...] \
|
|
142
142
|
--project <project-root> --clone-run <verified-clone-run-id>
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
maggie tool maggie_design.py status <design-job-id> --project <project-root>
|
|
144
|
+
maggie tool maggie_design.py resume <design-job-id> --project <project-root>
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
The job writes `.maggie/design-jobs/<job-id>.json` and stops at `failed` when
|
|
@@ -163,7 +163,7 @@ Use in-place mode when the route already belongs to the current first-party
|
|
|
163
163
|
project and should be redesigned without cloning an external URL:
|
|
164
164
|
|
|
165
165
|
```bash
|
|
166
|
-
|
|
166
|
+
maggie tool maggie_design.py in-place \
|
|
167
167
|
--project <project-root> \
|
|
168
168
|
--route /pricing \
|
|
169
169
|
--route /about
|
|
@@ -291,7 +291,7 @@ The homepage `review` mode only compares screenshots. It does not rebrand a
|
|
|
291
291
|
template. When the user explicitly requests a brand change, run:
|
|
292
292
|
|
|
293
293
|
```bash
|
|
294
|
-
|
|
294
|
+
maggie tool maggie_design.py rebrand \
|
|
295
295
|
--template marketplace/templates/<id> \
|
|
296
296
|
--source-brand "Source Brand" \
|
|
297
297
|
--brand "Target Brand"
|
|
@@ -310,7 +310,7 @@ with Maggie Studio.
|
|
|
310
310
|
- Require a completed `.maggie/bootstrap-state.json` and a completed homepage
|
|
311
311
|
foundation from `maggie-clone`. If either is missing, stop and request it.
|
|
312
312
|
- Require a project-level `DESIGN.md` generated from the industry reference and
|
|
313
|
-
clone evidence. Validate it with `
|
|
313
|
+
clone evidence. Validate it with `maggie tool maggie_design_system.py
|
|
314
314
|
validate DESIGN.md`; if it is missing or invalid, stop before editing.
|
|
315
315
|
- Reject the origin homepage as a target. Use `maggie-clone` for that job.
|
|
316
316
|
- The target is initially cloned as a complete page. After that first pass,
|
|
@@ -334,9 +334,9 @@ Follow the shared [Maggie decision loop](../../references/decision-loop.md).
|
|
|
334
334
|
Inspect before editing:
|
|
335
335
|
|
|
336
336
|
```bash
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
337
|
+
maggie tool maggie.py status <project-root>
|
|
338
|
+
maggie tool maggie.py doctor <project-root> --require-bootstrap --strict
|
|
339
|
+
maggie tool maggie_clone.py verify --project <project-root> --run-id <verified-clone-run-id>
|
|
340
340
|
```
|
|
341
341
|
|
|
342
342
|
Read and follow the complete `maggie-clone` workflow before proceeding. The
|
|
@@ -493,8 +493,8 @@ For every target:
|
|
|
493
493
|
the final content region to the target for page fidelity.
|
|
494
494
|
4. Sweep keyboard focus, links, forms, hover, tabs/dialogs, scroll behavior,
|
|
495
495
|
mobile menu, and reduced-motion behavior.
|
|
496
|
-
5. Run `
|
|
497
|
-
6. Run `
|
|
496
|
+
5. Run `maggie tool site_audit.py <local-or-production-url> --json`.
|
|
497
|
+
6. Run `maggie tool maggie_clone.py compare --project <project-root> --run-id <verified-clone-run-id> --local-url <local-or-staging-url> --force` and review the final content-region diff.
|
|
498
498
|
7. Confirm the final DOM has exactly one header and one footer, the homepage
|
|
499
499
|
shell is the imported source of truth, and no target-shell fallback remains.
|
|
500
500
|
|
|
@@ -37,18 +37,18 @@ API Pull integration, analytics, booking provider, or Maggie Ops backend.
|
|
|
37
37
|
## Commands
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
maggie tool maggie_marketplace.py list
|
|
41
|
+
maggie tool maggie_marketplace.py add \
|
|
42
42
|
https://www.aura.build/templates/medical-spa-landing-30 clone \
|
|
43
43
|
https://medical-spa-landing-30.aura.build/ \
|
|
44
44
|
--rename medical-spa-landing-001 --replace-id medical-spa-landing-30
|
|
45
|
-
|
|
45
|
+
maggie tool maggie_marketplace.py import \
|
|
46
46
|
--id medical-spa-landing-30 \
|
|
47
47
|
--template-url https://www.aura.build/templates/medical-spa-landing-30 \
|
|
48
48
|
--preview-url https://medical-spa-landing-30.aura.build/ \
|
|
49
49
|
--category spa --category medical-spa --tags premium --tags clinical
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
maggie tool maggie_marketplace.py validate marketplace/templates/medical-spa-landing-30
|
|
51
|
+
maggie tool maggie_marketplace.py apply \
|
|
52
52
|
--id medical-spa-landing-30 --project /path/to/astro-project
|
|
53
53
|
```
|
|
54
54
|
|
|
@@ -84,8 +84,8 @@ The workflow is persisted as `.maggie/marketplace-jobs/<template-id>.json` and
|
|
|
84
84
|
uses fail-closed checkpoints. Inspect or resume a job with:
|
|
85
85
|
|
|
86
86
|
```bash
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
maggie tool maggie_marketplace.py status <template-id>
|
|
88
|
+
maggie tool maggie_marketplace.py resume <template-id>
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
If generated assets are missing, the job stops at `WAITING_FOR_ASSETS`; cloned
|
|
@@ -114,16 +114,16 @@ or while an output image is reused across content occurrences.
|
|
|
114
114
|
sample only when the marketplace intentionally introduces a new contract:
|
|
115
115
|
|
|
116
116
|
```bash
|
|
117
|
-
|
|
117
|
+
maggie tool maggie_marketplace.py validate \
|
|
118
118
|
marketplace/templates/<template-id>
|
|
119
|
-
|
|
119
|
+
maggie tool maggie_marketplace.py validate \
|
|
120
120
|
marketplace/templates/<template-id> --sample marketplace/templates/<sample-id>
|
|
121
121
|
```
|
|
122
122
|
|
|
123
123
|
For a local export, pass the quoted HTML path as the preview argument:
|
|
124
124
|
|
|
125
125
|
```bash
|
|
126
|
-
|
|
126
|
+
maggie tool maggie_marketplace.py add \
|
|
127
127
|
https://www.aura.build/templates/medical-spa-landing-30 clone \
|
|
128
128
|
"/path/to/Medical Aesthetics & Wellness Landing Page Template.html" \
|
|
129
129
|
--rename medical-spa-landing-001 --category spa --category medical-spa \
|
|
@@ -197,7 +197,7 @@ manifest. A spinner, blank iframe, empty React root, loading skeleton, or page
|
|
|
197
197
|
without meaningful content is a failed clone and must not be packaged.
|
|
198
198
|
|
|
199
199
|
```bash
|
|
200
|
-
|
|
200
|
+
maggie tool maggie_clone.py extract \
|
|
201
201
|
"https://medical-spa-landing-30.aura.build/" \
|
|
202
202
|
--run-id marketplace-medical-spa-landing-001
|
|
203
203
|
```
|
|
@@ -301,7 +301,7 @@ redesign is explicitly requested.
|
|
|
301
301
|
### 10. Validate and apply
|
|
302
302
|
|
|
303
303
|
```bash
|
|
304
|
-
|
|
304
|
+
maggie tool maggie_marketplace.py validate \
|
|
305
305
|
marketplace/templates/medical-spa-landing-001
|
|
306
306
|
python3 scripts/validate_skills.py
|
|
307
307
|
git diff --check
|
|
@@ -38,13 +38,13 @@ Invoke it as:
|
|
|
38
38
|
Use the deterministic control-plane CLI for lifecycle gates:
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
maggie tool maggie_ops.py --project . audit
|
|
42
|
+
maggie tool maggie_ops.py --project . preflight --write
|
|
43
|
+
maggie tool maggie_ops.py --project . status
|
|
44
|
+
maggie tool maggie_ops.py --project . verify
|
|
45
|
+
maggie tool maggie_ops.py --project . favicon-check \
|
|
46
46
|
--origin https://example.com
|
|
47
|
-
|
|
47
|
+
maggie tool maggie_ops.py --project . record sitemap-match \
|
|
48
48
|
--dry-run --quota-impact quota --idempotency-key match-2026-08-29-001
|
|
49
49
|
```
|
|
50
50
|
|
|
@@ -61,7 +61,7 @@ context. Product roles, OAuth scopes, and Cloud IAM are distinct evidence.
|
|
|
61
61
|
For the combined API Pull lifecycle, use the repository CLI in dry-run first:
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
|
-
|
|
64
|
+
maggie tool maggie.py api lifecycle --project .
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
The executing form can pull posts/updates, inspect rewrite queue/history and
|
|
@@ -302,7 +302,7 @@ correct.
|
|
|
302
302
|
For a deterministic technical smoke check, run:
|
|
303
303
|
|
|
304
304
|
```bash
|
|
305
|
-
|
|
305
|
+
maggie tool site_audit.py https://example.com --crawl --json
|
|
306
306
|
```
|
|
307
307
|
|
|
308
308
|
This validates observable public output only. Strategy, AI visibility
|
|
@@ -350,7 +350,7 @@ enter the rewrite queue.
|
|
|
350
350
|
The deterministic local orchestration entry point is:
|
|
351
351
|
|
|
352
352
|
```bash
|
|
353
|
-
|
|
353
|
+
maggie tool maggie.py api lifecycle --project .
|
|
354
354
|
```
|
|
355
355
|
|
|
356
356
|
Use `--execute` only after reviewing the dry-run, and add `--allow-quota` for
|
|
@@ -80,66 +80,66 @@ provider research.
|
|
|
80
80
|
Run from the project root:
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
|
|
83
|
+
maggie tool maggie_service_booking.py import \
|
|
84
84
|
"https://www.fresha.com/a/spa-chevy-chase-chevy-chase-4500-north-park-avenue-sbic60h4?pId=512061" \
|
|
85
85
|
--project .
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
maggie tool maggie_service_booking.py sync \
|
|
88
88
|
"https://www.fresha.com/a/spa-chevy-chase-chevy-chase-4500-north-park-avenue-sbic60h4?pId=512061" \
|
|
89
89
|
--project .
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
maggie tool maggie_service_booking.py sync-report --project .
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
maggie tool maggie_service_booking.py generate --project . --copy-data docs/service-page-copy.json
|
|
94
|
+
maggie tool maggie_service_booking.py validate --project .
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
maggie tool maggie_service_booking.py validate-copy \
|
|
97
97
|
--project . \
|
|
98
98
|
--service-id fresha:15510886 \
|
|
99
99
|
--copy-data docs/service-page-copy.json
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
maggie tool maggie_service_booking.py run \
|
|
102
102
|
"https://www.fresha.com/a/your-location" --project .
|
|
103
103
|
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
maggie tool maggie_service_booking.py inspect --project .
|
|
105
|
+
maggie tool maggie_service_booking.py status --project .
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
maggie tool maggie_service_booking.py convert-page \
|
|
108
108
|
src/pages/services/scalp-ritual.astro --project .
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
maggie tool maggie_service_booking.py match-pages \
|
|
111
111
|
--project . --pages-dir src/pages
|
|
112
112
|
|
|
113
113
|
# Apply only reviewed matches; do not accept the first candidate automatically.
|
|
114
|
-
|
|
114
|
+
maggie tool maggie_service_booking.py match-pages \
|
|
115
115
|
--project . --select 'fresha:15510886=/src/pages/lymphatic-drainage-massage-chevy-chase-md.astro'
|
|
116
116
|
|
|
117
117
|
# One service may intentionally have multiple reviewed pages; repeat --select.
|
|
118
|
-
|
|
118
|
+
maggie tool maggie_service_booking.py match-pages \
|
|
119
119
|
--project . \
|
|
120
120
|
--select 'fresha:15510886=/src/pages/lymphatic-drainage-massage-chevy-chase-md.astro' \
|
|
121
121
|
--select 'fresha:15510886=/src/pages/friendship-heights/lymphatic-drainage-massage.astro'
|
|
122
122
|
|
|
123
|
-
|
|
123
|
+
maggie tool maggie_service_booking.py polish \
|
|
124
124
|
--project . \
|
|
125
125
|
--service-id fresha:15510886 \
|
|
126
126
|
--page src/pages/lymphatic-drainage-massage-chevy-chase-md.astro \
|
|
127
127
|
--copy-data docs/service-page-copy.json
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
maggie tool maggie_service_booking.py validate-polish \
|
|
130
130
|
--project . --service-id fresha:15510886 \
|
|
131
131
|
--page src/pages/lymphatic-drainage-massage-chevy-chase-md.astro \
|
|
132
132
|
--copy-data docs/service-page-copy.json \
|
|
133
133
|
--rendered http://127.0.0.1:4323/lymphatic-drainage-massage-chevy-chase-md/
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
maggie tool maggie_service_booking.py category-audit \
|
|
136
136
|
--project . --rendered-dir /tmp/category-rendered
|
|
137
137
|
|
|
138
|
-
|
|
138
|
+
maggie tool maggie_service_booking.py category-context --project .
|
|
139
139
|
|
|
140
140
|
# Declare provider behavior, then validate it against the imported catalogue
|
|
141
141
|
# and a sanitized fixture before publishing service pages.
|
|
142
|
-
|
|
142
|
+
maggie tool maggie_service_booking.py capability-audit \
|
|
143
143
|
--project . \
|
|
144
144
|
--catalogue .maggie/booking/services.json \
|
|
145
145
|
--capabilities-file .maggie/booking/provider-capabilities.json \
|
|
@@ -147,11 +147,11 @@ python3 tools/clis/maggie_service_booking.py capability-audit \
|
|
|
147
147
|
|
|
148
148
|
# Answer whether provider-owned treatments are present using the same parser
|
|
149
149
|
# as import/sync; do not search the whole provider page for a name.
|
|
150
|
-
|
|
150
|
+
maggie tool maggie_service_booking.py catalogue-check \
|
|
151
151
|
"https://www.fresha.com/a/your-location" \
|
|
152
152
|
--provider fresha --treatment "Lymphatic drainage massage"
|
|
153
153
|
|
|
154
|
-
|
|
154
|
+
maggie tool maggie_service_booking.py retirement-audit \
|
|
155
155
|
--project . \
|
|
156
156
|
--catalogue .maggie/booking/services.json \
|
|
157
157
|
--evidence .maggie/booking/retirement-evidence.json
|
|
@@ -258,7 +258,7 @@ After the AI artifact is finalised, backfill only deterministic provenance
|
|
|
258
258
|
metadata with:
|
|
259
259
|
|
|
260
260
|
```bash
|
|
261
|
-
|
|
261
|
+
maggie tool maggie_service_booking.py category-hash \
|
|
262
262
|
--project . --copy-data docs/category-page-copy.json --apply
|
|
263
263
|
```
|
|
264
264
|
|
|
@@ -282,7 +282,7 @@ is `passed`.
|
|
|
282
282
|
Run the imported-fact gate before generating service or category copy:
|
|
283
283
|
|
|
284
284
|
```bash
|
|
285
|
-
|
|
285
|
+
maggie tool maggie_service_booking.py fact-audit \
|
|
286
286
|
--project . --backfill-source
|
|
287
287
|
```
|
|
288
288
|
|
|
@@ -466,7 +466,7 @@ never let a catch-all route render an unlisted fallback page.
|
|
|
466
466
|
|
|
467
467
|
Validate rendered sitemap output with:
|
|
468
468
|
|
|
469
|
-
|
|
469
|
+
maggie tool maggie_service_booking.py sitemap-audit \
|
|
470
470
|
--project . --index .maggie/rendered-sitemaps/sitemap.xml \
|
|
471
471
|
--sitemap-dir .maggie/rendered-sitemaps
|
|
472
472
|
|
|
@@ -482,7 +482,7 @@ the route.
|
|
|
482
482
|
|
|
483
483
|
Then audit the live route graph:
|
|
484
484
|
|
|
485
|
-
|
|
485
|
+
maggie tool maggie_service_booking.py route-audit \
|
|
486
486
|
--project . --base-url https://example.co.uk
|
|
487
487
|
|
|
488
488
|
This fetches every sitemap URL, requires HTTP 200, records internal inbound
|
|
@@ -22,9 +22,9 @@ and GEO. It is not a second content source of truth.
|
|
|
22
22
|
Create the reviewable channel contract before generating copy:
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
|
|
25
|
+
maggie tool maggie_social_share.py plan content.json \
|
|
26
26
|
--channels linkedin,facebook --output .maggie/social-share-plan.json
|
|
27
|
-
|
|
27
|
+
maggie tool maggie_social_share.py validate .maggie/social-share-plan.json
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
The CLI does not generate copy or publish. It validates identity, canonical
|