pageship 0.2.0 → 0.3.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/dist/cli.mjs +17 -17
- package/dist/skills/pageship/SKILL.md +8 -8
- package/dist/skills/pageship-chart/SKILL.md +1 -1
- package/dist/skills/pageship-code-block/SKILL.md +1 -1
- package/dist/skills/pageship-decision-record/SKILL.md +1 -1
- package/dist/skills/pageship-diagram/SKILL.md +1 -1
- package/dist/skills/pageship-docs/SKILL.md +1 -1
- package/dist/skills/pageship-explainer/SKILL.md +1 -1
- package/dist/skills/pageship-interaction/SKILL.md +1 -1
- package/dist/skills/pageship-key-figures/SKILL.md +1 -1
- package/dist/skills/pageship-media/SKILL.md +1 -1
- package/dist/skills/pageship-motion/SKILL.md +1 -1
- package/dist/skills/pageship-plan/SKILL.md +1 -1
- package/dist/skills/pageship-report/SKILL.md +1 -1
- package/dist/skills/pageship-review-report/SKILL.md +1 -1
- package/dist/skills/pageship-slide-deck/SKILL.md +1 -1
- package/dist/skills/pageship-spec/SKILL.md +1 -1
- package/dist/skills/pageship-table/SKILL.md +1 -1
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -724,7 +724,7 @@ function isRevisionId(value) {
|
|
|
724
724
|
return typeof value === "string" && /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}(?![\s\S])/iu.test(value);
|
|
725
725
|
}
|
|
726
726
|
/** Same readable normalized Git remote grammar as the Effect contract. */
|
|
727
|
-
function
|
|
727
|
+
function isRepository(value) {
|
|
728
728
|
return typeof value === "string" && value.length <= 512 && /^[a-z0-9._-]+(?::[0-9]{1,5})?(?:\/(?!\.{1,2}(?:\/|$))[^\x00-\x20\x7f/\\?#]+)+(?![\s\S])/u.test(value);
|
|
729
729
|
}
|
|
730
730
|
function isCliVersion(value) {
|
|
@@ -757,7 +757,7 @@ function normalizeDocument(value) {
|
|
|
757
757
|
return validDocument(normalized) ? normalized : void 0;
|
|
758
758
|
}
|
|
759
759
|
function validDocument(value) {
|
|
760
|
-
return record(value) && isDocumentId(value.id) && typeof value.slug === "string" && /^[a-z0-9]+(?:-[a-z0-9]+)*(?![\s\S])/u.test(value.slug) && validTitle(value.title) && typeof value.sourcePath === "string" && value.sourcePath.length <= 1024 && /^(?!\/)(?!.*(?:^|\/)\.{1,2}(?:\/|$))(?!.*\/\/)[^\x00-\x1f\x7f\\:]*\.[hH][tT][mM][lL]?(?![\s\S])/u.test(value.sourcePath) && (value.
|
|
760
|
+
return record(value) && isDocumentId(value.id) && typeof value.slug === "string" && /^[a-z0-9]+(?:-[a-z0-9]+)*(?![\s\S])/u.test(value.slug) && validTitle(value.title) && typeof value.sourcePath === "string" && value.sourcePath.length <= 1024 && /^(?!\/)(?!.*(?:^|\/)\.{1,2}(?:\/|$))(?!.*\/\/)[^\x00-\x1f\x7f\\:]*\.[hH][tT][mM][lL]?(?![\s\S])/u.test(value.sourcePath) && (value.repository === null || isRepository(value.repository)) && (value.visibility === "private" || value.visibility === "public") && isRevisionId(value.revisionId) && typeof value.byteLength === "number" && Number.isSafeInteger(value.byteLength) && value.byteLength > 0 && typeof value.createdAt === "number" && Number.isSafeInteger(value.createdAt) && value.createdAt >= 0 && typeof value.publishedAt === "number" && Number.isSafeInteger(value.publishedAt) && value.publishedAt >= 0 && typeof value.url === "string" && new RegExp(`^https://[a-z0-9-]+\\.${workspaceDomainPattern}/d/${value.id}-${value.slug}$`, "u").test(value.url);
|
|
761
761
|
}
|
|
762
762
|
function validRevision(value, documentId) {
|
|
763
763
|
return record(value) && isRevisionId(value.id) && typeof value.createdAt === "number" && Number.isSafeInteger(value.createdAt) && value.createdAt >= 0 && typeof value.byteLength === "number" && Number.isSafeInteger(value.byteLength) && value.byteLength > 0 && typeof value.isCurrent === "boolean" && (value.cliVersion === null || isCliVersion(value.cliVersion)) && typeof value.url === "string" && new RegExp(`^https://[a-z0-9-]+\\.${workspaceDomainPattern}/d/${documentId}-[a-z0-9]+(?:-[a-z0-9]+)*/revisions/${value.id}$`, "u").test(value.url);
|
|
@@ -923,7 +923,7 @@ async function publishDocument(baseUrl, input, options = {}) {
|
|
|
923
923
|
body: new Blob([new Uint8Array(input.bytes)], { type: "text/html" }),
|
|
924
924
|
query: {
|
|
925
925
|
sourcePath: input.sourcePath,
|
|
926
|
-
|
|
926
|
+
repository: input.repository,
|
|
927
927
|
cliVersion: input.cliVersion,
|
|
928
928
|
action: input.action,
|
|
929
929
|
documentId: input.documentId,
|
|
@@ -962,7 +962,7 @@ async function getWorkspace(baseUrl, options = {}) {
|
|
|
962
962
|
});
|
|
963
963
|
if (!response?.ok) throw new Error("Could not load your workspace.", { cause: error });
|
|
964
964
|
if (data?.status === "signed_out" || data?.status === "uninvited") return { status: data.status };
|
|
965
|
-
if (data?.status === "admitted" && typeof data.user?.id === "string" && data.user.id.length > 0 && typeof data.user?.name === "string" && (data.user.login === void 0 || typeof data.user.login === "string") && typeof data.workspace?.id === "string" && data.workspace.id.length > 0 && (data.address === void 0 || data.address === null || isWorkspaceAddress(data.address))) return data;
|
|
965
|
+
if (data?.status === "admitted" && typeof data.user?.id === "string" && data.user.id.length > 0 && typeof data.user?.name === "string" && (data.user.login === void 0 || typeof data.user.login === "string") && (data.user.githubAccountId === void 0 || typeof data.user.githubAccountId === "string" && /^[1-9]\d*$/u.test(data.user.githubAccountId)) && typeof data.workspace?.id === "string" && data.workspace.id.length > 0 && (data.address === void 0 || data.address === null || isWorkspaceAddress(data.address))) return data;
|
|
966
966
|
throw new Error("Invalid workspace response.");
|
|
967
967
|
}
|
|
968
968
|
function validateCompatibility(value) {
|
|
@@ -1323,7 +1323,7 @@ const outcomes = {
|
|
|
1323
1323
|
choice_required: "pending",
|
|
1324
1324
|
address_required: "pending",
|
|
1325
1325
|
source_collision: "pending",
|
|
1326
|
-
|
|
1326
|
+
repository_mismatch: "pending",
|
|
1327
1327
|
marker_unavailable: "pending",
|
|
1328
1328
|
revision_conflict: "pending",
|
|
1329
1329
|
cancelled: "pending",
|
|
@@ -1412,7 +1412,7 @@ function commandLine(command, args) {
|
|
|
1412
1412
|
}
|
|
1413
1413
|
//#endregion
|
|
1414
1414
|
//#region package.json
|
|
1415
|
-
var version = "0.
|
|
1415
|
+
var version = "0.3.0";
|
|
1416
1416
|
//#endregion
|
|
1417
1417
|
//#region src/publish.ts
|
|
1418
1418
|
const execute = promisify(execFile);
|
|
@@ -1424,7 +1424,7 @@ async function sourceMetadata(file) {
|
|
|
1424
1424
|
const path = await realpath(resolve(file));
|
|
1425
1425
|
const cwd = await realpath(process.cwd());
|
|
1426
1426
|
let root = contained(cwd, path) ? cwd : dirname(path);
|
|
1427
|
-
let
|
|
1427
|
+
let repository;
|
|
1428
1428
|
try {
|
|
1429
1429
|
const git = async (...args) => (await execute("git", [
|
|
1430
1430
|
"-C",
|
|
@@ -1445,8 +1445,8 @@ async function sourceMetadata(file) {
|
|
|
1445
1445
|
"ssh:",
|
|
1446
1446
|
"git:"
|
|
1447
1447
|
].includes(url.protocol) && url.hostname) {
|
|
1448
|
-
const
|
|
1449
|
-
if (
|
|
1448
|
+
const normalized = `${url.hostname.toLowerCase()}${url.port ? `:${url.port}` : ""}/${url.pathname.replace(/^\/+|\/+$/gu, "").replace(/\.git$/u, "")}`;
|
|
1449
|
+
if (isRepository(normalized)) repository = normalized;
|
|
1450
1450
|
}
|
|
1451
1451
|
}
|
|
1452
1452
|
} catch {}
|
|
@@ -1455,7 +1455,7 @@ async function sourceMetadata(file) {
|
|
|
1455
1455
|
return {
|
|
1456
1456
|
path,
|
|
1457
1457
|
sourcePath,
|
|
1458
|
-
|
|
1458
|
+
repository
|
|
1459
1459
|
};
|
|
1460
1460
|
}
|
|
1461
1461
|
async function fileBytes(path, limit) {
|
|
@@ -1653,7 +1653,7 @@ async function publish(options) {
|
|
|
1653
1653
|
expectedRevisionId: entry.revisionId
|
|
1654
1654
|
};
|
|
1655
1655
|
automatic = "manifest";
|
|
1656
|
-
} else if (target.
|
|
1656
|
+
} else if (target.repository === (source.repository ?? null)) {
|
|
1657
1657
|
action = {
|
|
1658
1658
|
action: "revise",
|
|
1659
1659
|
documentId: target.id,
|
|
@@ -1661,9 +1661,9 @@ async function publish(options) {
|
|
|
1661
1661
|
};
|
|
1662
1662
|
automatic = "marker";
|
|
1663
1663
|
} else return {
|
|
1664
|
-
status: "
|
|
1664
|
+
status: "repository_mismatch",
|
|
1665
1665
|
document: target,
|
|
1666
|
-
message: `This file's marker names ${target.url}, a document from ${target.
|
|
1666
|
+
message: `This file's marker names ${target.url}, a document from ${target.repository ?? "a loose file"}, but this file ${source.repository ? `belongs to ${source.repository}` : "is a loose file"}. No document changed. To revise that document anyway, publish with --revise ${target.id} --expected-revision ${target.revisionId}, or use --new for a separate document. Use --json for complete follow-up arguments.`,
|
|
1667
1667
|
resolutions: resolutions(options.file, contextArgs, [target])
|
|
1668
1668
|
};
|
|
1669
1669
|
} else if (detect) {
|
|
@@ -1691,7 +1691,7 @@ async function publish(options) {
|
|
|
1691
1691
|
const result = await publishDocument(server, {
|
|
1692
1692
|
bytes: uploaded,
|
|
1693
1693
|
sourcePath: source.sourcePath,
|
|
1694
|
-
...source.
|
|
1694
|
+
...source.repository ? { repository: source.repository } : {},
|
|
1695
1695
|
cliVersion: version,
|
|
1696
1696
|
idempotencyKey,
|
|
1697
1697
|
...proposal
|
|
@@ -2191,7 +2191,7 @@ function listDocuments(options) {
|
|
|
2191
2191
|
...next ? { next } : {},
|
|
2192
2192
|
message: [
|
|
2193
2193
|
page.documents.length ? "Documents:" : options.cursor ? "No more documents." : "No documents.",
|
|
2194
|
-
...page.documents.map((document) => `${document.id} ${document.visibility} ${document.title}\n` + (document.
|
|
2194
|
+
...page.documents.map((document) => `${document.id} ${document.visibility} ${document.title}\n` + (document.repository ? ` repository ${document.repository}\n` : "") + ` source ${document.sourcePath}\n current revision ${document.revisionId}\n ${document.url}`),
|
|
2195
2195
|
...next ? [`More documents: run ${commandLine(next.command, next.args)}`] : []
|
|
2196
2196
|
].join("\n")
|
|
2197
2197
|
};
|
|
@@ -2346,7 +2346,7 @@ const isSkillName = (name) => /^pageship(?:-[a-z0-9-]+)?$/u.test(name);
|
|
|
2346
2346
|
const recommendedSkills = ["frontend-design", "design-taste-frontend"];
|
|
2347
2347
|
/** The oldest Node major that runs the authoring skills' scripts. */
|
|
2348
2348
|
const authoringNodeMajor = 20;
|
|
2349
|
-
const setupGuide = "https://pageship.dev/setup-guide";
|
|
2349
|
+
const setupGuide = "https://pageship.dev/setup-guide.md";
|
|
2350
2350
|
const installNext = {
|
|
2351
2351
|
command: "skills",
|
|
2352
2352
|
args: ["install"]
|
|
@@ -2457,7 +2457,7 @@ async function findMissing(environment) {
|
|
|
2457
2457
|
function notFound(missing) {
|
|
2458
2458
|
if (missing.length === 0) return void 0;
|
|
2459
2459
|
const named = missing.map((entry) => entry === "node" ? `Node ${authoringNodeMajor} or later` : entry);
|
|
2460
|
-
return `${named.length > 1 ? `${named.slice(0, -1).join(", ")} and ${named.at(-1)}` : named[0]} ${named.length > 1 ? "were" : "was"} not found. The setup guide
|
|
2460
|
+
return `${named.length > 1 ? `${named.slice(0, -1).join(", ")} and ${named.at(-1)}` : named[0]} ${named.length > 1 ? "were" : "was"} not found. The setup guide covers them: download ${setupGuide} and read all of it.`;
|
|
2461
2461
|
}
|
|
2462
2462
|
/**
|
|
2463
2463
|
* Whether the Pageship skills in ~/.agents/skills are missing, current, or older than this
|
|
@@ -3,7 +3,7 @@ name: pageship
|
|
|
3
3
|
description: Publish an HTML file to Pageship and manage what is published. Use when the user asks to publish, share or get a link to a document, update its published copy, change its visibility, list, inspect history, download or restore published documents, or sign in to Pageship. To write, edit, rename or move a document, load pageship-docs instead.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Pageship
|
|
@@ -18,7 +18,7 @@ A document marker in a file (`<!-- pageship:v1 document=<id> -->`) records that
|
|
|
18
18
|
|
|
19
19
|
## Write or change a document
|
|
20
20
|
|
|
21
|
-
When the user asks to write, change, rename or move a document, load `pageship-docs` and follow it, even when the same request asks you to publish. When it hands over the file, publish it if the user asked. If `pageship-docs` isn't installed, say so and offer the setup guide
|
|
21
|
+
When the user asks to write, change, rename or move a document, load `pageship-docs` and follow it, even when the same request asks you to publish. When it hands over the file, publish it if the user asked. If `pageship-docs` isn't installed, say so and offer the setup guide, which installs it. Get it as [Install the CLI](#install-the-cli) describes. If the user declines, write the document without the authoring skills, then publish it if the user asked.
|
|
22
22
|
|
|
23
23
|
## Reading a result
|
|
24
24
|
|
|
@@ -38,7 +38,7 @@ A follow-up has a `command` and an `args` array. Run it as `pageship --json <com
|
|
|
38
38
|
|
|
39
39
|
## Install the CLI
|
|
40
40
|
|
|
41
|
-
If the shell can't find `pageship`, tell the user the Pageship CLI isn't installed and offer to install it. Only with their consent, follow the setup guide
|
|
41
|
+
If the shell can't find `pageship`, tell the user the Pageship CLI isn't installed and offer to install it. Only with their consent, follow the setup guide. Download https://pageship.dev/setup-guide.md with curl or a similar command and read all of it, since a fetch tool may hand you only a summary. The guide asks before it changes their environment.
|
|
42
42
|
|
|
43
43
|
## Check readiness
|
|
44
44
|
|
|
@@ -62,7 +62,7 @@ pageship --json skills install
|
|
|
62
62
|
|
|
63
63
|
On `skills_installed`, they are in `~/.agents/skills`, and linked from `~/.claude/skills` when Claude Code is set up. On `skills_modified`, nothing was written: the folders in `folders` were changed after the CLI installed them, or the CLI has no record of them. Show the user those folders. Run `resolutions.force` only if they agree to replace them and lose those changes.
|
|
64
64
|
|
|
65
|
-
Both results, and `status`, list in `missing` what the CLI looked for and did not find: the recommended skills `frontend-design` and `design-taste-frontend`, and `node`, Node 20 or later, which the authoring skills' scripts need. The CLI never installs them, and they never change the outcome. Mention them, and offer the setup guide
|
|
65
|
+
Both results, and `status`, list in `missing` what the CLI looked for and did not find: the recommended skills `frontend-design` and `design-taste-frontend`, and `node`, Node 20 or later, which the authoring skills' scripts need. The CLI never installs them, and they never change the outcome. Mention them, and offer the setup guide. Get it as [Install the CLI](#install-the-cli) describes.
|
|
66
66
|
|
|
67
67
|
## Sign in
|
|
68
68
|
|
|
@@ -88,9 +88,9 @@ Set the shell placeholder `PAGESHIP_FILE` to one nonempty `.html` or `.htm` file
|
|
|
88
88
|
pageship --json publish "$PAGESHIP_FILE"
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
-
The CLI records each published file's real path in its publish manifest on this machine, so running the same command again for that file revises its document without a choice, and a fresh session needs no remembered document ID. Inside a Git checkout with an origin remote, the file belongs to a
|
|
91
|
+
The CLI records each published file's real path in its publish manifest on this machine, so running the same command again for that file revises its document without a choice, and a fresh session needs no remembered document ID. Inside a Git checkout with an origin remote, the file belongs to a repository. A file in a repository without a manifest entry, such as one in another checkout, is looked up by its repository and repository-relative path on the server. `document.repository` shows the readable remote, and it is `null` for a loose file outside any repository.
|
|
92
92
|
|
|
93
|
-
After a successful upload the CLI adds the document marker to the end of the local file, so the file and the published revision match. The marker lets the file find its document after a rename or a move, and on another machine in a checkout of the same
|
|
93
|
+
After a successful upload the CLI adds the document marker to the end of the local file, so the file and the published revision match. The marker lets the file find its document after a rename or a move, and on another machine in a checkout of the same repository. Keep the marker when you edit or regenerate the file, and do not write or change it yourself. To publish a file exactly as it is, add `--no-marker`.
|
|
94
94
|
|
|
95
95
|
### Report the publish
|
|
96
96
|
|
|
@@ -104,7 +104,7 @@ Keep `idempotencyKey` only while you resolve an uncertain attempt.
|
|
|
104
104
|
|
|
105
105
|
### When the publish stops for a decision
|
|
106
106
|
|
|
107
|
-
On `
|
|
107
|
+
On `repository_mismatch`, the file's marker names a document from another repository, for example a fork. Nothing changed. Show the user the returned `document` and ask whether to revise it with the `resolutions.revise` entry or create a separate document with `resolutions.new`.
|
|
108
108
|
|
|
109
109
|
On `marker_unavailable`, the marker names a document that was not found or is not the user's, and nothing was uploaded. Ask before running the returned `next`, which creates a separate document.
|
|
110
110
|
|
|
@@ -120,7 +120,7 @@ An unmarked loose file is not matched by path, so on another machine, or from an
|
|
|
120
120
|
pageship --json publish "$PAGESHIP_FILE" --revise "$PAGESHIP_DOCUMENT" --expected-revision "$PAGESHIP_REVISION"
|
|
121
121
|
```
|
|
122
122
|
|
|
123
|
-
This works for any document the user owns, even when the file moved or belongs to another
|
|
123
|
+
This works for any document the user owns, even when the file moved or belongs to another repository. Another account's document returns `unavailable`. Later plain publishes of this file revise the named document, and its marker names it. After `--new`, they revise the new one.
|
|
124
124
|
|
|
125
125
|
## Share a document
|
|
126
126
|
|
|
@@ -3,7 +3,7 @@ name: pageship-chart
|
|
|
3
3
|
description: Later step of pageship-docs: for a request to write or edit a document, load pageship-docs first; load this skill first only when the user names it. Pattern for charts in a Pageship HTML document, loaded by a pageship- kind skill before it draws a chart.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Chart
|
|
@@ -3,7 +3,7 @@ name: pageship-code-block
|
|
|
3
3
|
description: Later step of pageship-docs: for a request to write or edit a document, load pageship-docs first; load this skill first only when the user names it. Pattern for code in a Pageship HTML document, such as source code, commands, configuration or logs, loaded by a pageship- kind skill before the first code block.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Code block
|
|
@@ -3,7 +3,7 @@ name: pageship-decision-record
|
|
|
3
3
|
description: HTML decision records, as the second step of pageship-docs. For any request to record, write, regenerate, edit or move a decision, load pageship-docs first; load this skill first only when the user names it.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Decision record
|
|
@@ -3,7 +3,7 @@ name: pageship-diagram
|
|
|
3
3
|
description: Later step of pageship-docs: for a request to write or edit a document, load pageship-docs first; load this skill first only when the user names it. Pattern for diagrams in a Pageship HTML document, such as a process, a timeline, a system map or states, loaded by a pageship- kind skill before it draws a diagram.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Diagram
|
|
@@ -3,7 +3,7 @@ name: pageship-docs
|
|
|
3
3
|
description: First step for any document people read, such as a report, plan, spec, explainer, review, decision record or slide deck, in HTML or Markdown. Load it before any other pageship- skill. Use when the user asks for one of these documents, asks to regenerate, redesign, edit, rename, move or copy an HTML source file, or asks to record whether they want HTML or Markdown.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Pageship documents
|
|
@@ -3,7 +3,7 @@ name: pageship-explainer
|
|
|
3
3
|
description: HTML explainers, as the second step of pageship-docs. For any request to explain how something works, or to write, regenerate, edit or move an explainer, load pageship-docs first; load this skill first only when the user names it.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Explainer
|
|
@@ -3,7 +3,7 @@ name: pageship-interaction
|
|
|
3
3
|
description: Later step of pageship-docs: for a request to write or edit a document, load pageship-docs first; load this skill first only when the user names it. Pattern for controls in a Pageship HTML document, such as stepping through stages, tracing a path, tabs, filters, revealing detail and pointer states on charts and diagrams, loaded by a pageship- kind skill before it adds any control.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Interaction
|
|
@@ -3,7 +3,7 @@ name: pageship-key-figures
|
|
|
3
3
|
description: Later step of pageship-docs: for a request to write or edit a document, load pageship-docs first; load this skill first only when the user names it. Pattern for the few numbers and callouts a Pageship HTML document opens with, loaded by a pageship- kind skill before it writes key figures.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Key figures
|
|
@@ -3,7 +3,7 @@ name: pageship-media
|
|
|
3
3
|
description: Later step of pageship-docs: for a request to write or edit a document, load pageship-docs first; load this skill first only when the user names it. Pattern for images, video and audio in a Pageship HTML document, loaded by a pageship- kind skill before it shows media.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Media
|
|
@@ -3,7 +3,7 @@ name: pageship-motion
|
|
|
3
3
|
description: Later step of pageship-docs: for a request to write or edit a document, load pageship-docs first; load this skill first only when the user names it. Pattern for animation and transitions in a Pageship HTML document, such as playing a change over time or moving a marker along a path, loaded by a pageship- kind skill before anything on the page moves.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Motion
|
|
@@ -3,7 +3,7 @@ name: pageship-plan
|
|
|
3
3
|
description: HTML plans, as the second step of pageship-docs. For any request to write, regenerate, edit or move a plan, load pageship-docs first; load this skill first only when the user names it.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Plan
|
|
@@ -3,7 +3,7 @@ name: pageship-report
|
|
|
3
3
|
description: HTML reports, as the second step of pageship-docs. For any request to write, regenerate, edit or move a report, load pageship-docs first; load this skill first only when the user names it.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Report
|
|
@@ -3,7 +3,7 @@ name: pageship-review-report
|
|
|
3
3
|
description: HTML review reports, as the second step of pageship-docs. For any request to review a change or a plan and write up the findings, or to write, regenerate, edit or move a review report, load pageship-docs first; load this skill first only when the user names it.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Review report
|
|
@@ -3,7 +3,7 @@ name: pageship-slide-deck
|
|
|
3
3
|
description: HTML slide decks, as the second step of pageship-docs. For any request to make slides or a presentation, or to regenerate, edit or move a deck, load pageship-docs first; load this skill first only when the user names it.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Slide deck
|
|
@@ -3,7 +3,7 @@ name: pageship-spec
|
|
|
3
3
|
description: HTML specs, as the second step of pageship-docs. For any request to write, regenerate, edit or move a spec, load pageship-docs first; load this skill first only when the user names it.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Spec
|
|
@@ -3,7 +3,7 @@ name: pageship-table
|
|
|
3
3
|
description: Later step of pageship-docs: for a request to write or edit a document, load pageship-docs first; load this skill first only when the user names it. Pattern for tables in a Pageship HTML document, loaded by a pageship- kind skill before it writes a table.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.3.0"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Table
|