@typeroll/mcp-server 0.45.76 → 0.45.77
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 +8 -2
- package/README.md +18 -0
- package/dist/bundled-content.js +15 -8
- package/dist/init.js +1 -1
- package/dist/version.js +1 -1
- package/dist/workspace.js +32 -7
- package/package.json +3 -2
- package/skills/tr-import-url.md +6 -6
- package/skills/tr-migrate-astro.md +3 -3
- package/skills/tr-migrate-multisite.md +4 -4
- package/skills/tr-migrate-wp.md +6 -6
- package/skills/tr-migration-evidence.md +35 -23
- package/workspace-templates/brief/interview.md +18 -0
- package/workspace-templates/brief/migration.md +42 -0
- package/workspace-templates/workflows/interview.md +72 -0
- package/workspace-templates/workflows/migration.md +35 -0
- package/workspace-templates/workflows/new-site.md +17 -0
package/dist/init.js
CHANGED
|
@@ -48,7 +48,7 @@ export async function runInitCli(args) {
|
|
|
48
48
|
try {
|
|
49
49
|
const result = await runInit({ dir, update, recipes, client });
|
|
50
50
|
console.log(JSON.stringify(result, null, 2));
|
|
51
|
-
console.log('Next:
|
|
51
|
+
console.log('Next: read AGENTS.md. For guidance, start/resume workflows/interview.md; otherwise use workflows/new-site.md or workflows/migration.md. Record decisions in brief/, connect hosted MCP at https://app.typeroll.com/api/mcp?tools=compact, create/select your Site, record its IDs/Version in typeroll.json, then run typeroll doctor. Local MCP uses an injected TYPEROLL_API_KEY; no key is stored by init. See README.md.');
|
|
52
52
|
return 0;
|
|
53
53
|
}
|
|
54
54
|
catch {
|
package/dist/version.js
CHANGED
package/dist/workspace.js
CHANGED
|
@@ -3,6 +3,7 @@ import path from 'node:path';
|
|
|
3
3
|
import { createHash } from 'node:crypto';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { VERSION } from './version.js';
|
|
6
|
+
import { BUNDLED_WORKSPACE_TEMPLATES } from './bundled-content.js';
|
|
6
7
|
import { ApiError, TyperollClient } from './client.js';
|
|
7
8
|
export const workspaceSchema = z.object({
|
|
8
9
|
schema_version: z.literal(1),
|
|
@@ -20,11 +21,21 @@ const hash = (value) => createHash('sha256').update(value).digest('hex');
|
|
|
20
21
|
export const ignores = ['.typeroll/', '.env', '.env.*', '!.env.example', '.mcp.json', '.cursor/mcp.json', '.vscode/mcp.json', 'qa/reports/', 'sources/private/'];
|
|
21
22
|
export const agentInstructions = `# Working on this website
|
|
22
23
|
|
|
23
|
-
Read typeroll.json, brief/ and decisions.md.
|
|
24
|
+
Read typeroll.json, brief/site.md, brief/rules.md and decisions.md first. Read
|
|
25
|
+
other brief/ files and workflows/ only when relevant. Confirm the portal, Organization,
|
|
24
26
|
Site and working Version before writes. This workspace is not the generated
|
|
25
27
|
publication repository. The CMS owns current content and configuration; local
|
|
26
28
|
sources are proposals unless the user explicitly adopts them.
|
|
27
29
|
|
|
30
|
+
## Guided start
|
|
31
|
+
|
|
32
|
+
When the owner needs guidance or a material decision is missing, start or resume
|
|
33
|
+
workflows/interview.md. Read brief/interview.md and existing answers first; ask
|
|
34
|
+
one short question at a time and save progress. Do not repeat confirmed questions
|
|
35
|
+
or treat silence as approval. For a complete brief, proceed directly to
|
|
36
|
+
workflows/new-site.md or workflows/migration.md. All kickoff prompts live here
|
|
37
|
+
in the workspace; public docs explain the flow and link to these source files.
|
|
38
|
+
|
|
28
39
|
## Discover only what the task needs
|
|
29
40
|
|
|
30
41
|
With compact MCP, search_tools then describe_tool; call_read_tool,
|
|
@@ -60,12 +71,23 @@ Public documentation: https://typeroll.com/docs/llms.txt
|
|
|
60
71
|
## Migrations
|
|
61
72
|
|
|
62
73
|
Read tr-migration-evidence, then the source-specific recipe (tr-migrate-wp,
|
|
63
|
-
tr-import-url, tr-migrate-astro or tr-migrate-multisite). Record preserve or renew
|
|
64
|
-
|
|
74
|
+
tr-import-url, tr-migrate-astro or tr-migrate-multisite). Record text_intent and design_intent separately as preserve or renew
|
|
75
|
+
in brief/migration.md; design includes images. Ask if either is unclear. Standard blocks first, reviewed
|
|
65
76
|
custom types next, documented HTML exceptions last. Preserve or meaningfully
|
|
66
77
|
redirect every old public URL. Import completion is not block reconstruction
|
|
67
|
-
or launch acceptance. Compare
|
|
68
|
-
approved design
|
|
78
|
+
or launch acceptance. Compare text and design/images separately: preserved dimensions to the source,
|
|
79
|
+
renewed dimensions to their approved brief. New design never permits rewriting preserved text. Start with workflows/migration.md for the kickoff
|
|
80
|
+
prompt. The agent rebuilds imported HTML using ordinary block tools; the owner
|
|
81
|
+
does not need to manually convert each Page. No automatic converter is available.
|
|
82
|
+
Discover tools and recipes on demand.
|
|
83
|
+
|
|
84
|
+
## Project rules and search strategy
|
|
85
|
+
|
|
86
|
+
Record the owner's preferences and durable constraints in brief/rules.md; put
|
|
87
|
+
approved search intent, topic coverage and URL/indexing strategy in brief/seo.md.
|
|
88
|
+
These are project decisions, not CMS settings or permission to publish. If a
|
|
89
|
+
request conflicts with an agreed rule, ask and record the resulting decision.
|
|
90
|
+
Use workflows/README.md to find the relevant routine, not load every recipe.
|
|
69
91
|
|
|
70
92
|
## Everyday requests
|
|
71
93
|
|
|
@@ -82,12 +104,15 @@ Store credentials in the client's private settings or injected environment.
|
|
|
82
104
|
Run the workspace doctor after setup and after changing the binding.
|
|
83
105
|
`;
|
|
84
106
|
export const workspaceTemplates = {
|
|
107
|
+
...BUNDLED_WORKSPACE_TEMPLATES,
|
|
85
108
|
'AGENTS.md': agentInstructions,
|
|
86
|
-
'README.md': `# Website workspace\n\nKeep project intent here; edit the website through Typeroll CMS.\n\n1.
|
|
109
|
+
'README.md': `# Website workspace\n\nKeep project intent here; edit the website through Typeroll CMS.\n\n1. Read AGENTS.md. For guidance, ask your agent to start or resume workflows/interview.md. Otherwise use workflows/new-site.md or workflows/migration.md. Save confirmed goals, rules and SEO strategy in brief/; record text and design/image choices separately for migrations.\n2. Connect hosted MCP at https://app.typeroll.com/api/mcp?tools=compact.\n3. Use an Organization key to create a site, or select an existing one.\n4. Record its IDs and working version in typeroll.json. No secrets belong there.\n5. Run npx @typeroll/mcp-server doctor . (inject TYPEROLL_API_KEY privately).\n\nStart guide: https://typeroll.com/docs/getting-started/agent-workspace/\n\nUpdate the generated scaffold with npx @typeroll/mcp-server init . --update.\nEdited files are preserved and reported for manual reconciliation. Optional local\nrecipes: init . --recipes. They are reference Markdown, not automatically loaded.\n`,
|
|
87
110
|
'brief/site.md': '# Site brief\n\n## Purpose and audience\n\n## Languages and scope\n\n## Primary user journeys\n\n## Content authority and sources\n\n## Editorial constraints and forbidden internal markers\n',
|
|
88
111
|
'brief/brand.md': '# Brand\n\n## Voice and tone\n\n## Visual direction and references\n\n## Typography, colors and image policy\n\n## Desktop and mobile navigation\n\nRecord intent here; current design tokens belong in CMS settings.\n',
|
|
89
112
|
'brief/content-model.md': '# Content model\n\n## Page types and routes\n\n## Fields and references\n\n## Shared templates and partials\n\n## Taxonomy and navigation\n\nUse the current CMS schema. This document describes decisions, not a second schema store.\n',
|
|
90
|
-
'brief/
|
|
113
|
+
'brief/rules.md': "# Owner preferences and project rules\n\n## Confirmed rules\n\nRecord each rule, its scope, who approved it and the date. Separate confirmed rules from proposals.\n\n## Writing and factual accuracy\n\nVoice, terminology, prohibited claims, source requirements and legal copy that must not be rewritten.\n\n## Design and editing\n\nBrand constraints, accessibility, editable content, standard/custom blocks and documented HTML exceptions.\n\n## Operations and approval\n\nWho may approve content, publication, DNS changes and messages? Credentials stay outside this repository.\n\n## Exceptions and superseded rules\n\nLink decisions.md; do not silently override a confirmed rule. Project notes do not grant permissions beyond the user's authorization or account access.\n",
|
|
114
|
+
'brief/seo.md': "# SEO strategy\n\n## Business goals, audience, markets and languages\n\n## Search intent and topic coverage\n\nRecord research sources and dates. Distinguish evidence from assumptions; do not invent traffic or ranking forecasts.\n\n## Page roles and URL plan\n\nContent types, useful landing pages, taxonomy, internal links and routes to preserve or redirect. Avoid near-duplicate pages created only for keyword variants.\n\n## Indexing and canonical policy\n\nWhich pages should be indexable, public noindex, or private? Record deliberate canonical overrides and sitemap policy; actual values live in the CMS.\n\n## Editorial standards and structured data\n\nUnique useful copy, supported claims, descriptive titles and links, accessible image text, schema matching visible content. No fixed title length or word count is a hard SEO rule.\n\n## Measurement and review\n\nBaseline, analytics/consent decisions, measures of success and review dates. Never store credentials or private analytics exports here.\n",
|
|
115
|
+
'workflows/README.md': "# Project routines\n\nRead only the relevant routine and discover current tool schemas through MCP.\nProject files record intent; the CMS owns current content and configuration.\n\n| Task | Project context | On-demand recipe |\n| --- | --- | --- |\n| Guided start | workflows/interview.md, brief/interview.md | Ask one question at a time; resume confirmed answers |\n| New website | workflows/new-site.md, brief/site.md, brief/brand.md, brief/content-model.md | tr-new-site, tr-starter-design |\n| Migration | workflows/migration.md, brief/migration.md | tr-migration-evidence, then tr-migrate-wp or the matching source recipe |\n| Everyday editing | brief/rules.md and the relevant Page | tr-edit-site |\n| SEO | brief/seo.md and current site settings | tr-seo |\n| New reusable block | brief/brand.md and recorded editing needs | tr-custom-blocks |\n| Verification and publication | qa/checklist.md, decisions.md | Current preview/deploy tools and publishing readiness |\n\nAdd project-specific routines here with inputs, steps, acceptance evidence and approval boundaries. Do not copy the complete Typeroll manual or private app guides. Discover enabled app guidance with read_app_documentation. Load a recipe when needed so instructions stay current and context stays small.\n",
|
|
91
116
|
'decisions.md': '# Decisions\n\nRecord date, decision, reason, approved scope and alternatives when useful.\n',
|
|
92
117
|
'sources/README.md': '# Sources\n\nStore research references and copy proposals. Record source URLs and dates.\nPrivate extracts belong in ignored private/ or an approved external store.\nDo not treat local drafts as current CMS content or commit media libraries.\n',
|
|
93
118
|
'scripts/README.md': '# Project automation\n\nKeep repeatable imports and QA scripts here. Use the authenticated REST API\nfor scripted work; keep credentials outside files and inject them at runtime.\nMCP remains the interactive interface. Typeroll currently has no general site CRUD CLI.\n',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typeroll/mcp-server",
|
|
3
|
-
"version": "0.45.
|
|
3
|
+
"version": "0.45.77",
|
|
4
4
|
"description": "Typeroll CMS MCP server – connect AI agents to the REST API to manage content and publish static websites.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
"dist",
|
|
30
30
|
"AGENTS.md",
|
|
31
31
|
"README.md",
|
|
32
|
-
"skills"
|
|
32
|
+
"skills",
|
|
33
|
+
"workspace-templates"
|
|
33
34
|
],
|
|
34
35
|
"scripts": {
|
|
35
36
|
"gen": "node scripts/embed-content.mjs",
|
package/skills/tr-import-url.md
CHANGED
|
@@ -10,10 +10,10 @@ another MCP client) working through MCP and the public API. The portal's built-i
|
|
|
10
10
|
AI assistant has no migration tools: it does not import, convert or verify sites.
|
|
11
11
|
|
|
12
12
|
**Before import or reconstruction:** read `tr-migration-evidence` with
|
|
13
|
-
`read_skill`. Choose preserve
|
|
14
|
-
record the brief and verify one prototype per active template before bulk writes.
|
|
13
|
+
`read_skill`. Choose preserve or renew independently for text and design/images,
|
|
14
|
+
record text_intent and design_intent in the brief and verify one prototype per active template before bulk writes.
|
|
15
15
|
Use standard blocks first, reviewed custom types next, rare documented HTML last.
|
|
16
|
-
|
|
16
|
+
All four combinations must preserve or meaningfully redirect every old public URL. That
|
|
17
17
|
shared contract defines acceptance; this recipe only adds source-specific steps.
|
|
18
18
|
|
|
19
19
|
|
|
@@ -81,7 +81,7 @@ list_pages limit=5
|
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
Read existing target data to avoid overwriting work. Compare prototypes to the
|
|
84
|
-
source
|
|
84
|
+
source when design_intent is preserve, or to the agreed new design when it is renew. Review text separately. Validate
|
|
85
85
|
standard/custom blocks using `tr-migration-evidence` before mass writes.
|
|
86
86
|
|
|
87
87
|
### 3. Fetch and clean each source page
|
|
@@ -123,8 +123,8 @@ omit it. Inventory PDFs, download hrefs, srcsets and backgrounds as well.
|
|
|
123
123
|
|
|
124
124
|
**d. Adapt to the target's design.**
|
|
125
125
|
Use standard blocks first, then reusable custom types with editable fields.
|
|
126
|
-
|
|
127
|
-
and
|
|
126
|
+
Review appearance and text independently according to design_intent and text_intent;
|
|
127
|
+
compare each preserved dimension to the source and each renewed dimension to its approved brief. Raw HTML is the documented last resort.
|
|
128
128
|
|
|
129
129
|
### 4. Create pages as drafts
|
|
130
130
|
|
|
@@ -10,10 +10,10 @@ another MCP client) working through MCP and the public API. The portal's built-i
|
|
|
10
10
|
AI assistant has no migration tools: it does not import, convert or verify sites.
|
|
11
11
|
|
|
12
12
|
**Before import or reconstruction:** read `tr-migration-evidence` with
|
|
13
|
-
`read_skill`. Choose preserve
|
|
14
|
-
record the brief and verify one prototype per active template before bulk writes.
|
|
13
|
+
`read_skill`. Choose preserve or renew independently for text and design/images,
|
|
14
|
+
record text_intent and design_intent in the brief and verify one prototype per active template before bulk writes.
|
|
15
15
|
Use standard blocks first, reviewed custom types next, rare documented HTML last.
|
|
16
|
-
|
|
16
|
+
All four combinations must preserve or meaningfully redirect every old public URL. That
|
|
17
17
|
shared contract defines acceptance; this recipe only adds source-specific steps.
|
|
18
18
|
|
|
19
19
|
|
|
@@ -10,10 +10,10 @@ another MCP client) working through MCP and the public API. The portal's built-i
|
|
|
10
10
|
AI assistant has no migration tools: it does not import, convert or verify sites.
|
|
11
11
|
|
|
12
12
|
**Before import or reconstruction:** read `tr-migration-evidence` with
|
|
13
|
-
`read_skill`. Choose preserve
|
|
14
|
-
record the brief and verify one prototype per active template before bulk writes.
|
|
13
|
+
`read_skill`. Choose preserve or renew independently for text and design/images,
|
|
14
|
+
record text_intent and design_intent in the brief and verify one prototype per active template before bulk writes.
|
|
15
15
|
Use standard blocks first, reviewed custom types next, rare documented HTML last.
|
|
16
|
-
|
|
16
|
+
All four combinations must preserve or meaningfully redirect every old public URL. That
|
|
17
17
|
shared contract defines acceptance; this recipe only adds source-specific steps.
|
|
18
18
|
|
|
19
19
|
|
|
@@ -69,7 +69,7 @@ required before import; GitHub/build/domain readiness is checked separately for
|
|
|
69
69
|
publication. Do not infer that every Site shares the same blockers.
|
|
70
70
|
|
|
71
71
|
Ask explicitly:
|
|
72
|
-
- Which
|
|
72
|
+
- Which text_intent and design_intent apply per Site, each preserve or renew? Which source or approved
|
|
73
73
|
prototype is the **design reference**? Build that one properly first.
|
|
74
74
|
- Are the sites **translations of each other** (same page structure) or
|
|
75
75
|
independent? This decides whether hreflang clusters are mechanical or
|
package/skills/tr-migrate-wp.md
CHANGED
|
@@ -10,10 +10,10 @@ another MCP client) working through MCP and the public API. The portal's built-i
|
|
|
10
10
|
AI assistant has no migration tools: it does not import, convert or verify sites.
|
|
11
11
|
|
|
12
12
|
**Before import or reconstruction:** read `tr-migration-evidence` with
|
|
13
|
-
`read_skill`. Choose preserve
|
|
14
|
-
record the brief and verify one prototype per active template before bulk writes.
|
|
13
|
+
`read_skill`. Choose preserve or renew independently for text and design/images,
|
|
14
|
+
record text_intent and design_intent in the brief and verify one prototype per active template before bulk writes.
|
|
15
15
|
Use standard blocks first, reviewed custom types next, rare documented HTML last.
|
|
16
|
-
|
|
16
|
+
All four combinations must preserve or meaningfully redirect every old public URL. That
|
|
17
17
|
shared contract defines acceptance; this recipe only adds source-specific steps.
|
|
18
18
|
|
|
19
19
|
|
|
@@ -80,7 +80,7 @@ Then the ordinary preconditions:
|
|
|
80
80
|
REST API disabled" if not — common for hardened hosts).
|
|
81
81
|
- The target exists. Establish the source design baseline first, then prove
|
|
82
82
|
representative target templates using `tr-migration-evidence`. Preserve
|
|
83
|
-
appearance
|
|
83
|
+
appearance when design_intent is preserve; use the approved design brief when it is renew. Review text against its separate choice.
|
|
84
84
|
- If the target already has content, you must NOT clobber it — always
|
|
85
85
|
`list_pages` first and only write to slugs that don't already exist.
|
|
86
86
|
Pass the slug explicitly: `create_page` then refuses an address that is
|
|
@@ -165,10 +165,10 @@ c. Migrate referenced images with `upload_media_from_url`. The customer's
|
|
|
165
165
|
media reference only after verification. Stop and report a failed required
|
|
166
166
|
transfer; do not silently hotlink the WordPress source.
|
|
167
167
|
|
|
168
|
-
The managed importer stores cleaned HTML. Typeroll does not convert HTML into blocks, and `set_page_mode` never rewrites HTML.
|
|
168
|
+
The managed importer stores cleaned HTML. Typeroll does not convert HTML into blocks, and `set_page_mode` never rewrites HTML. You, the external agent, rebuild the imported content with ordinary block tools. The owner does not need to convert every Page manually. There is no editor conversion preview; it was removed in Core 0.2.58. Preserve the complete source before switching modes and never publish the empty intermediate Page.
|
|
169
169
|
|
|
170
170
|
d. Rebuild into editable blocks according to the selected intent. Preserve exact
|
|
171
|
-
wording
|
|
171
|
+
wording when text_intent is preserve; track approved changes when it is renew, independently of design. Map headings,
|
|
172
172
|
prose, images, buttons and layout to standard fields first, then create
|
|
173
173
|
reviewed custom types where needed. Use raw HTML only for a documented,
|
|
174
174
|
exceptional fragment. Preserve anchors and map every old URL in either mode.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tr-migration-evidence
|
|
3
|
-
description: Choose
|
|
3
|
+
description: Choose text and design/image preservation independently, map standard and custom blocks, preserve old URLs, and verify content, design and behavior before migration acceptance.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Migration evidence contract
|
|
@@ -12,22 +12,33 @@ AI assistant has no migration tools: it does not import, convert or verify sites
|
|
|
12
12
|
Use this shared contract with WordPress, Astro, URL and multisite recipes.
|
|
13
13
|
## Choose the migration intent before writes
|
|
14
14
|
|
|
15
|
-
Record
|
|
16
|
-
|
|
17
|
-
These are planning labels, not
|
|
18
|
-
the
|
|
15
|
+
Record two independent choices in `brief/migration.md` (or the project's
|
|
16
|
+
corresponding brief): `text_intent` and `design_intent`, each `preserve` or `renew`.
|
|
17
|
+
Design includes images. These are planning labels, not migration API parameters.
|
|
18
|
+
Use the starter's `workflows/interview.md` when guidance or decisions are missing;
|
|
19
|
+
resume existing answers. Do not infer either choice from a vague "migrate" or
|
|
20
|
+
"renew", or silently apply an old single-choice brief to both dimensions.
|
|
19
21
|
|
|
20
|
-
|
|
|
22
|
+
| Text | Design/images | Acceptance |
|
|
21
23
|
| --- | --- | --- |
|
|
22
|
-
| Preserve
|
|
23
|
-
|
|
|
24
|
+
| Preserve | Preserve | Compare wording and appearance separately with the source. |
|
|
25
|
+
| Preserve | Renew | Keep wording; compare appearance with approved new prototypes. |
|
|
26
|
+
| Renew | Preserve | Review copy against the editorial brief; keep source appearance, allowing documented layout adjustments for new text length. |
|
|
27
|
+
| Renew | Renew | Review copy and appearance against their separately approved briefs. |
|
|
24
28
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
Preserved text includes headings, body copy, CTA labels and captions. Record
|
|
30
|
+
metadata, alt text, legal text and translation rules explicitly; SEO is not an
|
|
31
|
+
exception permitting silent rewrites. With renewed design, list required assets
|
|
32
|
+
and which images may be replaced or generated, including cropping, credits and
|
|
33
|
+
rights. Format/size optimization must not change a preserved image's motif.
|
|
29
34
|
|
|
30
|
-
|
|
35
|
+
Record source URLs, dates, approved scope, per-Page exceptions and acceptance
|
|
36
|
+
references separately. Both choices preserve facts, ownership, required behavior
|
|
37
|
+
and historical URL continuity. Renewing design does not authorize text rewrites;
|
|
38
|
+
renewing text does not authorize new imagery. Neither authorizes invented claims,
|
|
39
|
+
unreviewed content removal or domain cutover. Protect existing target edits.
|
|
40
|
+
|
|
41
|
+
## Use editable blocks for all four combinations
|
|
31
42
|
|
|
32
43
|
1. Inspect standard block schemas, composition starters, named styles and Page
|
|
33
44
|
templates. Prefer these when they fit.
|
|
@@ -60,10 +71,10 @@ still needs a platform fix, not a disguised HTML/CSS workaround.
|
|
|
60
71
|
|
|
61
72
|
The managed WordPress importer deterministically stores cleaned HTML and shared
|
|
62
73
|
references, without AI rewriting. That is a source-preserving intermediate step.
|
|
63
|
-
The external agent rebuilds it into reviewed blocks/templates for
|
|
74
|
+
The external agent rebuilds it into reviewed blocks/templates for all four combinations;
|
|
64
75
|
`set_page_mode` does not perform conversion. Keep the complete source, map every
|
|
65
|
-
in-scope content element, and do not silently truncate long pages.
|
|
66
|
-
|
|
76
|
+
in-scope content element, and do not silently truncate long pages. When text_intent is preserve retain wording; when it is renew track approved
|
|
77
|
+
rewrites and source facts, independently of design_intent.
|
|
67
78
|
An import finishing does not mean design, block reconstruction or launch is done.
|
|
68
79
|
|
|
69
80
|
## Old URLs must continue to work
|
|
@@ -86,10 +97,10 @@ Do not switch traffic until these checks pass and cutover is authorized.
|
|
|
86
97
|
|
|
87
98
|
## Gate 1: source baseline, before conversion
|
|
88
99
|
|
|
89
|
-
Record
|
|
100
|
+
Record both chosen intents, authoritative source URL/date, scope, relevant Core version, active
|
|
90
101
|
Page templates and overrides. Inventory home, category/archive, long/short
|
|
91
102
|
articles, downloads, empty related lists and each distinct business surface.
|
|
92
|
-
For preserve, capture source and target geometry; for renew, compare the target
|
|
103
|
+
For design_intent=preserve, capture source and target geometry; for design_intent=renew, compare the target
|
|
93
104
|
with the approved design while retaining source coverage evidence. Capture
|
|
94
105
|
screenshots and computed geometry at matching actual `innerWidth`
|
|
95
106
|
values (320/390/768/1024/1280/1536 where relevant, plus both sides of actual
|
|
@@ -249,14 +260,15 @@ pre-cutover scope honestly when DNS or integrations remain out of scope.
|
|
|
249
260
|
|
|
250
261
|
The initial route census must combine source sitemaps, internal links, archive
|
|
251
262
|
pagination, CMS inventory and known utility routes. Include homepage, archives,
|
|
252
|
-
404/search behavior and routes outside the sitemap where present.
|
|
253
|
-
features absent from the source. In renew mode, include additions in the agreed brief. Assign every route a recipe, template override,
|
|
263
|
+
404/search behavior and routes outside the sitemap where present. Do not invent features absent from the source; include additions only in the agreed brief. Assign every route a recipe, template override,
|
|
254
264
|
composition or documented exception. Inventory the whole shell: content outside
|
|
255
265
|
`main`, header, footer, service navigation and archive heroes are not optional.
|
|
256
266
|
|
|
257
|
-
Derive required evidence from that census. For preserve, pair every
|
|
258
|
-
at mobile and desktop; for renew, compare
|
|
259
|
-
|
|
267
|
+
Derive required evidence from that census. For design_intent=preserve, pair every
|
|
268
|
+
in-scope source/target route at mobile and desktop; for design_intent=renew, compare
|
|
269
|
+
every target route to its approved prototype. Independently compare preserved text
|
|
270
|
+
to the source and renewed text to its editorial brief; account for the source
|
|
271
|
+
content/URL mapping in every combination; add each unique component, breakpoint and interaction
|
|
260
272
|
state. Inspect page-specific media, lists, tables, embeds, CTAs, anchors and related
|
|
261
273
|
content. One representative article cannot attest every article's content.
|
|
262
274
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Interview progress
|
|
2
|
+
|
|
3
|
+
Status: not started
|
|
4
|
+
Next question: goal and scope
|
|
5
|
+
|
|
6
|
+
## Confirmed answers
|
|
7
|
+
|
|
8
|
+
| Topic | Answer | Source/date | Brief location |
|
|
9
|
+
| --- | --- | --- | --- |
|
|
10
|
+
|
|
11
|
+
## Proposals and unknowns
|
|
12
|
+
|
|
13
|
+
Record what is not yet decided, whether it blocks the next step and who can decide.
|
|
14
|
+
|
|
15
|
+
## Recap and approved next step
|
|
16
|
+
|
|
17
|
+
Record the owner's confirmation, exact scope and date. Do not infer deployment,
|
|
18
|
+
DNS or message approval from a completed brief. No secrets or raw private transcripts.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Migration brief (when applicable)
|
|
2
|
+
|
|
3
|
+
## Independent choices
|
|
4
|
+
|
|
5
|
+
- text_intent: undecided (preserve or renew)
|
|
6
|
+
- design_intent: undecided (preserve or renew; includes images)
|
|
7
|
+
|
|
8
|
+
These are planning labels, not API parameters. Choose each separately. If guidance
|
|
9
|
+
is needed, use workflows/interview.md. A single "renew" must not silently authorize
|
|
10
|
+
both. Expand an older single-choice brief with the owner before dependent writes.
|
|
11
|
+
|
|
12
|
+
## Source URLs, date and agreed scope
|
|
13
|
+
|
|
14
|
+
## Text policy and exceptions
|
|
15
|
+
|
|
16
|
+
Preserve wording, headings, CTAs and captions when text_intent is preserve. Record
|
|
17
|
+
SEO metadata/alt text, legal copy, translation and page-specific exceptions explicitly.
|
|
18
|
+
For renewal, record the approved editorial brief and facts that must remain true.
|
|
19
|
+
|
|
20
|
+
## Design and image policy and exceptions
|
|
21
|
+
|
|
22
|
+
Record layout/brand references, required logos/assets, permitted replacements or
|
|
23
|
+
generation, cropping, rights and credits. Design renewal alone never permits text
|
|
24
|
+
rewriting. Preserve image motifs unless a replacement is agreed; format/size
|
|
25
|
+
optimization does not mean changing the image's content.
|
|
26
|
+
|
|
27
|
+
## Acceptance references
|
|
28
|
+
|
|
29
|
+
Text: original source for preserve; approved editorial brief for renew.
|
|
30
|
+
Design/images: original source for preserve; approved design/prototypes for renew.
|
|
31
|
+
Record these separately per layout or page when exceptions apply.
|
|
32
|
+
|
|
33
|
+
## Standard blocks, custom types and HTML exceptions
|
|
34
|
+
|
|
35
|
+
## Old URL to preserved path or relevant redirect
|
|
36
|
+
|
|
37
|
+
Both choices retain URL continuity, source facts and required business behavior.
|
|
38
|
+
|
|
39
|
+
## Prototype and verification evidence
|
|
40
|
+
|
|
41
|
+
Record text, design/images, links and behavior results separately. Keep private
|
|
42
|
+
extracts in sources/private/ and screenshots in qa/reports/.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Guided website interview
|
|
2
|
+
|
|
3
|
+
## When to start or resume
|
|
4
|
+
|
|
5
|
+
Use this routine when the owner asks for guidance or a material decision is missing
|
|
6
|
+
from the brief. Read the existing briefs, decisions and brief/interview.md first.
|
|
7
|
+
Do not restart an interview or ask questions already answered. If the brief is
|
|
8
|
+
complete, summarize it and continue with the relevant routine. This is an agent
|
|
9
|
+
conversation, not a portal wizard or a new API workflow.
|
|
10
|
+
|
|
11
|
+
## How to conduct it
|
|
12
|
+
|
|
13
|
+
- Use the owner's language. Ask one short question at a time; offer concrete
|
|
14
|
+
choices and allow a free answer or "not sure". Explain technical choices plainly.
|
|
15
|
+
- Reuse explicit instructions already given. Distinguish confirmed answers,
|
|
16
|
+
proposals and unknowns. Never treat silence as approval.
|
|
17
|
+
- If an answer is unknown, suggest an option with its consequences. Research and
|
|
18
|
+
reversible prototypes may continue; do not perform dependent CMS writes until
|
|
19
|
+
the necessary decision is confirmed.
|
|
20
|
+
- Save each answer and its source/date in brief/interview.md, and the approved
|
|
21
|
+
decision in the relevant brief. Keep the next question and unresolved items so
|
|
22
|
+
another session can resume. Do not store credentials, personal contact lists
|
|
23
|
+
or raw private transcripts here. No MCP connection is needed to plan locally.
|
|
24
|
+
- Reopen only affected questions when the owner changes direction. Record the
|
|
25
|
+
change in decisions.md; do not silently replace confirmed rules.
|
|
26
|
+
|
|
27
|
+
## Interview stages
|
|
28
|
+
|
|
29
|
+
1. **Goal and scope** — New website or migration? Purpose, audience, language,
|
|
30
|
+
desired visitor actions, source URL and what is in/out of scope.
|
|
31
|
+
Save to brief/site.md and brief/migration.md when relevant.
|
|
32
|
+
2. **Target and access** — Existing or new Typeroll Site? Discover accessible
|
|
33
|
+
Organizations/Sites through MCP and confirm the exact target and Version before
|
|
34
|
+
writes. Explain any missing storage or access when it becomes relevant; never
|
|
35
|
+
ask for a secret in chat. Save non-secret IDs to typeroll.json only when known.
|
|
36
|
+
3. **Text decision (migration)** — Preserve existing wording or renew it?
|
|
37
|
+
Preserve covers headings, body copy, CTA labels, captions and other authored
|
|
38
|
+
text. Record SEO titles/descriptions, alt text, legal text, translation and any
|
|
39
|
+
page-specific exceptions explicitly. Renewal needs an agreed editorial brief;
|
|
40
|
+
it is not permission to invent facts. Save text_intent in brief/migration.md.
|
|
41
|
+
4. **Design and image decision (migration)** — Independently preserve or renew
|
|
42
|
+
layout, typography, colors and imagery? Offer all four text/design combinations.
|
|
43
|
+
For renewal, ask which existing assets must remain and which may be replaced
|
|
44
|
+
or generated. Clarify cropping, logos, credits and image rights. Optimization
|
|
45
|
+
alone must not change the motif. Save design_intent and asset exceptions in
|
|
46
|
+
brief/migration.md, and the direction in brief/brand.md. A fresh design never
|
|
47
|
+
grants permission to rewrite preserved text.
|
|
48
|
+
5. **Content and behavior** — Page types, shared templates, navigation, forms,
|
|
49
|
+
downloads, integrations and who will edit them. Identify missing capabilities
|
|
50
|
+
before scaling up. Save to brief/content-model.md. New websites skip migration
|
|
51
|
+
preservation choices and establish their brand/content brief here.
|
|
52
|
+
6. **SEO and continuity** — Markets, search intent, useful topics and existing
|
|
53
|
+
valuable URLs. Record evidence separately from hypotheses in brief/seo.md.
|
|
54
|
+
Confirm metadata policy; text preservation cannot be bypassed as "SEO cleanup".
|
|
55
|
+
Every old public URL must remain or redirect meaningfully regardless of the
|
|
56
|
+
two migration choices. Retiring a URL requires a separate agreed exception.
|
|
57
|
+
7. **Owner rules and review** — Non-negotiable copy/design constraints, editing
|
|
58
|
+
roles and who approves prototypes, publication, DNS or messages. Save confirmed
|
|
59
|
+
rules to brief/rules.md. Keep technical access separate from user authorization.
|
|
60
|
+
8. **Recap and next action** — Show the scope, both migration decisions (if any),
|
|
61
|
+
image exceptions, acceptance references, open questions and the next concrete
|
|
62
|
+
step. Ask the owner to correct/confirm the brief before dependent writes.
|
|
63
|
+
Reuse existing approval if it already covers that exact step. Brief approval
|
|
64
|
+
alone does not authorize publication, domain cutover or mail.
|
|
65
|
+
|
|
66
|
+
## Completion
|
|
67
|
+
|
|
68
|
+
Mark the interview ready for the agreed next step only when its blocking questions
|
|
69
|
+
are answered; list deferred decisions explicitly. Continue with workflows/new-site.md
|
|
70
|
+
or workflows/migration.md and load only the relevant MCP recipe. Confirm one
|
|
71
|
+
prototype per distinct layout before bulk work. Review preserved dimensions
|
|
72
|
+
against the source and renewed dimensions against the approved brief separately.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Migration kickoff
|
|
2
|
+
|
|
3
|
+
If guidance is needed, start or resume workflows/interview.md. Otherwise fill in
|
|
4
|
+
this prompt from the confirmed brief. The two preservation choices are independent.
|
|
5
|
+
|
|
6
|
+
```text
|
|
7
|
+
Migrate [source URL] to Typeroll, Organization [ID/name], Site [ID/name], Version [ID].
|
|
8
|
+
Text: [preserve existing wording / renew against an agreed editorial brief].
|
|
9
|
+
Design and images: [preserve / renew against an agreed design brief].
|
|
10
|
+
Read AGENTS.md and use workflows/interview.md for missing decisions.
|
|
11
|
+
Read tr-migration-evidence, then tr-migrate-wp (or the appropriate source recipe).
|
|
12
|
+
Confirm the target and import readiness before writes. Inventory URLs, content,
|
|
13
|
+
media, templates and integrations; record both choices and exceptions in brief/migration.md.
|
|
14
|
+
Build and verify one prototype per distinct layout before bulk reconstruction.
|
|
15
|
+
Use standard blocks first, editable custom types next, isolated HTML only for
|
|
16
|
+
justified exceptions. Rebuild imported HTML with block tools; a mode switch does not convert it.
|
|
17
|
+
Keep preserved text unchanged even when the design is new. Record which images
|
|
18
|
+
may change. Preserve every old public URL or redirect to a relevant destination.
|
|
19
|
+
Protect existing CMS edits. Review text and design/images against their own
|
|
20
|
+
acceptance references, plus mobile/desktop behavior, downloads, forms and URL coverage.
|
|
21
|
+
Report unverified items separately. Do not publish, switch DNS or send messages
|
|
22
|
+
without explicit approval.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The managed importer stages cleaned HTML, media and shared references in Review.
|
|
26
|
+
The external agent can then reconstruct those Pages; no manual editor conversion
|
|
27
|
+
is required. An agent can also build block Pages directly from source material.
|
|
28
|
+
Neither path includes an automatic HTML-to-blocks converter. Read and preserve the
|
|
29
|
+
full source before switching modes, then save/read back and preview the rebuilt
|
|
30
|
+
Page on the selected Version. Never publish an empty intermediate block Page.
|
|
31
|
+
|
|
32
|
+
Track import, block reconstruction, separate text/design review, candidate
|
|
33
|
+
publication and domain cutover as separate milestones. Import completion is not
|
|
34
|
+
launch approval. All four text/design combinations use the same block hierarchy
|
|
35
|
+
and URL continuity contract. Planning choices are not migration API fields.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# New website kickoff
|
|
2
|
+
|
|
3
|
+
Use this prompt only when the brief is already clear. Otherwise start or resume
|
|
4
|
+
workflows/interview.md; the owner does not need to fill in every document alone.
|
|
5
|
+
|
|
6
|
+
```text
|
|
7
|
+
Create [website] for [audience and purpose] in Typeroll Organization [ID/name].
|
|
8
|
+
Read AGENTS.md, confirm the Site and Version, and use workflows/interview.md for
|
|
9
|
+
missing decisions. Record confirmed goals, brand, content model, owner rules and
|
|
10
|
+
SEO strategy in brief/. Read tr-new-site and relevant tool schemas on demand.
|
|
11
|
+
Build representative desktop/mobile layouts with editable blocks and shared templates.
|
|
12
|
+
Share previews, record accepted decisions and keep unresolved items explicit.
|
|
13
|
+
Do not publish, change DNS or send messages without explicit approval.
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The CMS owns current content and settings. The repository owns the brief, rules,
|
|
17
|
+
decisions and evidence. Load recipes when needed, not the whole manual.
|