openplanr 2.2640.3 → 2.2640.5
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/CHANGELOG.md +48 -0
- package/dist/cli/commands/artifact.d.ts.map +1 -1
- package/dist/cli/commands/artifact.js +44 -21
- package/dist/cli/commands/artifact.js.map +1 -1
- package/dist/dashboard/.vite/manifest.json +1 -1
- package/dist/dashboard/assets/{index-CaX9EJp4.js → index-BqFEZO-9.js} +2 -2
- package/dist/dashboard/assets/{index-CaX9EJp4.js.map → index-BqFEZO-9.js.map} +1 -1
- package/dist/dashboard/dashboard-manifest.json +8 -8
- package/dist/dashboard/index.html +1 -1
- package/dist/services/diagram-artifact-service.d.ts +28 -1
- package/dist/services/diagram-artifact-service.d.ts.map +1 -1
- package/dist/services/diagram-artifact-service.js +64 -1
- package/dist/services/diagram-artifact-service.js.map +1 -1
- package/docs/ARTIFACT_REVIEW.md +38 -2
- package/docs/CLI.md +12 -2
- package/lib/host-packages/adapter-registry.json +5 -5
- package/lib/host-packages/capability-map.json +2 -2
- package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
- package/lib/host-packages/claude/openplanr/.openplanr-content.json +33 -25
- package/lib/host-packages/claude/openplanr/README.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/artifact/SKILL.md +14 -4
- package/lib/host-packages/claude/openplanr/skills/artifact/references/diagram-sharing.md +51 -0
- package/lib/host-packages/claude/openplanr/skills/design/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/claude/openplanr/skills/design/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/claude/openplanr/skills/design/scripts/design-share.mjs +875 -544
- package/lib/host-packages/claude/openplanr/skills/design/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/claude/openplanr/skills/design/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/claude/openplanr/skills/design-loop/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/claude/openplanr/skills/design-loop/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/claude/openplanr/skills/design-loop/scripts/design-share.mjs +875 -544
- package/lib/host-packages/claude/openplanr/skills/design-loop/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/claude/openplanr/skills/design-loop/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/claude/openplanr/skills/design-review/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/claude/openplanr/skills/design-review/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/claude/openplanr/skills/design-review/scripts/design-share.mjs +875 -544
- package/lib/host-packages/claude/openplanr/skills/design-review/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/claude/openplanr/skills/design-review/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/claude/openplanr/skills/diagram/SKILL.md +13 -0
- package/lib/host-packages/claude/openplanr/skills/diagram/references/diagram-sharing.md +51 -0
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/design-share.mjs +875 -544
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/cursor/openplanr/.openplanr-content.json +32 -24
- package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-artifact/references/diagram-sharing.md +51 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-artifact.mdc +14 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-design/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/cursor/openplanr/rules/planr-design/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-design/scripts/design-share.mjs +875 -544
- package/lib/host-packages/cursor/openplanr/rules/planr-design/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/scripts/design-share.mjs +875 -544
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/scripts/design-share.mjs +875 -544
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram/references/diagram-sharing.md +51 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram.mdc +13 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/design-share.mjs +875 -544
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
- package/lib/host-packages/openai/openplanr/.openplanr-content.json +35 -27
- package/lib/host-packages/openai/openplanr/skills/artifact/SKILL.md +14 -4
- package/lib/host-packages/openai/openplanr/skills/artifact/agents/openai.yaml +2 -2
- package/lib/host-packages/openai/openplanr/skills/artifact/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/artifact/references/diagram-sharing.md +51 -0
- package/lib/host-packages/openai/openplanr/skills/design/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/openai/openplanr/skills/design/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/openai/openplanr/skills/design/scripts/design-share.mjs +875 -544
- package/lib/host-packages/openai/openplanr/skills/design/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/openai/openplanr/skills/design/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/openai/openplanr/skills/design-loop/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/openai/openplanr/skills/design-loop/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/openai/openplanr/skills/design-loop/scripts/design-share.mjs +875 -544
- package/lib/host-packages/openai/openplanr/skills/design-loop/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/openai/openplanr/skills/design-loop/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/openai/openplanr/skills/design-review/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/openai/openplanr/skills/design-review/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/openai/openplanr/skills/design-review/scripts/design-share.mjs +875 -544
- package/lib/host-packages/openai/openplanr/skills/design-review/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/openai/openplanr/skills/design-review/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/openai/openplanr/skills/diagram/SKILL.md +13 -0
- package/lib/host-packages/openai/openplanr/skills/diagram/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/diagram/references/diagram-sharing.md +51 -0
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/design-artifact-shell.mjs +127 -123
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/design-review-handoff.mjs +4 -3
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/design-share.mjs +875 -544
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/runtime/packages/design/templates/studio/share.css +1 -1
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/runtime/packages/protocol/package.json +5 -1
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"kind": "openplanr-dashboard-build",
|
|
3
3
|
"schemaVersion": "1.0.0",
|
|
4
|
-
"buildId": "dashboard-0.1.
|
|
4
|
+
"buildId": "dashboard-0.1.12-51bd4b03136872c1",
|
|
5
5
|
"entry": "index.html",
|
|
6
6
|
"assets": [
|
|
7
7
|
"assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2",
|
|
17
17
|
"assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2",
|
|
18
18
|
"assets/index-Bk8DyO_2.css",
|
|
19
|
-
"assets/index-
|
|
20
|
-
"assets/index-
|
|
19
|
+
"assets/index-BqFEZO-9.js",
|
|
20
|
+
"assets/index-BqFEZO-9.js.map"
|
|
21
21
|
],
|
|
22
22
|
"assetDigests": {
|
|
23
23
|
"assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2": {
|
|
@@ -68,17 +68,17 @@
|
|
|
68
68
|
"bytes": 187656,
|
|
69
69
|
"sha256": "sha256:ce569133bebdf30667b5af6937549dd967b5f88b0d100779d3db275909ecd723"
|
|
70
70
|
},
|
|
71
|
-
"assets/index-
|
|
71
|
+
"assets/index-BqFEZO-9.js": {
|
|
72
72
|
"bytes": 942569,
|
|
73
|
-
"sha256": "sha256:
|
|
73
|
+
"sha256": "sha256:04c14d0a4f7452754bc7cf70c0551c4b80b5b8bd91d3c1f121726fc66f89e1b7"
|
|
74
74
|
},
|
|
75
|
-
"assets/index-
|
|
75
|
+
"assets/index-BqFEZO-9.js.map": {
|
|
76
76
|
"bytes": 3430485,
|
|
77
|
-
"sha256": "sha256:
|
|
77
|
+
"sha256": "sha256:e74cc16a4bb05201ff9bb879193e688a57e27d9afdcad43ff802af287af18c0a"
|
|
78
78
|
},
|
|
79
79
|
"index.html": {
|
|
80
80
|
"bytes": 396,
|
|
81
|
-
"sha256": "sha256:
|
|
81
|
+
"sha256": "sha256:43f6f4e21ee8ebe930f245147e58456904f73734065f8c16f3b89a3f03087bd8"
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>OpenPlanr</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/index-
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-BqFEZO-9.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="./assets/index-Bk8DyO_2.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
@@ -1,5 +1,32 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ArtifactEnvelope } from './artifact-pipeline-service.js';
|
|
2
2
|
export declare function isDiagramManifestFile(file: string): boolean;
|
|
3
|
+
export declare function isDiagramShareFile(file: string): boolean;
|
|
4
|
+
export interface DiagramShareResult {
|
|
5
|
+
ok: boolean;
|
|
6
|
+
shared?: boolean;
|
|
7
|
+
title?: string;
|
|
8
|
+
url?: string;
|
|
9
|
+
id?: string;
|
|
10
|
+
localRevision?: string;
|
|
11
|
+
publishedRevision?: string;
|
|
12
|
+
reviewPath?: string;
|
|
13
|
+
imported?: number;
|
|
14
|
+
destination?: string;
|
|
15
|
+
output?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function previewDiagramShare(file: string): Promise<{
|
|
18
|
+
title: string;
|
|
19
|
+
source: {
|
|
20
|
+
digest: string;
|
|
21
|
+
};
|
|
22
|
+
scene: {
|
|
23
|
+
items: unknown[];
|
|
24
|
+
relations: unknown[];
|
|
25
|
+
};
|
|
26
|
+
destination: string;
|
|
27
|
+
localRevision: string;
|
|
28
|
+
}>;
|
|
29
|
+
export declare function runDiagramShareAction(file: string, action: 'share' | 'publish' | 'sync' | 'recovery', options?: Record<string, unknown>): Promise<DiagramShareResult>;
|
|
3
30
|
export interface DiagramStudioSession {
|
|
4
31
|
ok: boolean;
|
|
5
32
|
url: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-artifact-service.d.ts","sourceRoot":"","sources":["../../src/services/diagram-artifact-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"diagram-artifact-service.d.ts","sourceRoot":"","sources":["../../src/services/diagram-artifact-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { pathToFileURL } from 'node:url';
|
|
4
|
+
import { ArtifactCommandError } from './artifact-pipeline-service.js';
|
|
5
|
+
import { sha256CanonicalJson } from './canonical-json.js';
|
|
4
6
|
import { resolvePipelinePackage } from './pipeline-package-service.js';
|
|
5
7
|
export function isDiagramManifestFile(file) {
|
|
6
8
|
if (!path.basename(file).endsWith('.manifest.json'))
|
|
@@ -13,6 +15,51 @@ export function isDiagramManifestFile(file) {
|
|
|
13
15
|
return false;
|
|
14
16
|
}
|
|
15
17
|
}
|
|
18
|
+
export function isDiagramShareFile(file) {
|
|
19
|
+
if (isDiagramManifestFile(file))
|
|
20
|
+
return true;
|
|
21
|
+
if (path.extname(file).toLowerCase() !== '.json')
|
|
22
|
+
return false;
|
|
23
|
+
try {
|
|
24
|
+
return JSON.parse(readFileSync(file, 'utf8')).kind === 'diagram-authoring-bundle';
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return path.basename(file).endsWith('.planr-diagram-bundle.json');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async function loadDiagramSharing(entry) {
|
|
31
|
+
const pipeline = resolvePipelinePackage(false);
|
|
32
|
+
const file = pipeline && path.join(pipeline.root, `lib/artifact/diagram/${entry}.mjs`);
|
|
33
|
+
if (!file || !existsSync(file))
|
|
34
|
+
throw new ArtifactCommandError('E_PIPELINE_VERSION_INCOMPATIBLE', 'The installed workflow package does not support native encrypted diagram sharing.', 'Install a compatible OpenPlanr release first.');
|
|
35
|
+
return import(pathToFileURL(file).href);
|
|
36
|
+
}
|
|
37
|
+
export async function previewDiagramShare(file) {
|
|
38
|
+
const runtime = await loadDiagramSharing('review-bundle');
|
|
39
|
+
if (typeof runtime.prepareDiagramShareBundle !== 'function')
|
|
40
|
+
throw new ArtifactCommandError('E_PIPELINE_VERSION_INCOMPATIBLE', 'The diagram sharing runtime is incompatible.', 'Update OpenPlanr first.');
|
|
41
|
+
const sharing = await loadDiagramSharing('share');
|
|
42
|
+
if (typeof sharing.getDiagramShareStatus !== 'function')
|
|
43
|
+
throw new ArtifactCommandError('E_PIPELINE_VERSION_INCOMPATIBLE', 'The diagram sharing runtime cannot preview its destination.', 'Update OpenPlanr first.');
|
|
44
|
+
const bundle = await runtime.prepareDiagramShareBundle(path.resolve(file));
|
|
45
|
+
const status = await sharing.getDiagramShareStatus(path.resolve(file));
|
|
46
|
+
const localRevision = sha256CanonicalJson(bundle).slice('sha256:'.length);
|
|
47
|
+
if (localRevision !== status.localRevision)
|
|
48
|
+
throw new ArtifactCommandError('E_DIAGRAM_SHARE_PREVIEW_CHANGED', 'The diagram changed while preparing its sharing preview.', 'Preview the current diagram and retry.');
|
|
49
|
+
return { ...bundle, destination: status.destination, localRevision };
|
|
50
|
+
}
|
|
51
|
+
export async function runDiagramShareAction(file, action, options = {}) {
|
|
52
|
+
const runtime = await loadDiagramSharing('share');
|
|
53
|
+
const method = {
|
|
54
|
+
share: 'shareDiagram',
|
|
55
|
+
publish: 'publishDiagramShare',
|
|
56
|
+
sync: 'syncDiagramShare',
|
|
57
|
+
recovery: 'exportDiagramShareRecovery',
|
|
58
|
+
}[action];
|
|
59
|
+
if (typeof runtime[method] !== 'function')
|
|
60
|
+
throw new ArtifactCommandError('E_PIPELINE_VERSION_INCOMPATIBLE', 'The diagram sharing runtime is incompatible.', 'Update OpenPlanr first.');
|
|
61
|
+
return runtime[method](path.resolve(file), options);
|
|
62
|
+
}
|
|
16
63
|
async function loadDiagramArtifactRuntime() {
|
|
17
64
|
const pipeline = resolvePipelinePackage(false);
|
|
18
65
|
if (!pipeline) {
|
|
@@ -30,6 +77,22 @@ export async function prepareDiagramArtifact(file) {
|
|
|
30
77
|
return (await runtime.createDiagramArtifactEnvelope(path.resolve(file))).envelope;
|
|
31
78
|
}
|
|
32
79
|
export async function openDiagramArtifact(file, options) {
|
|
80
|
+
if (!isDiagramManifestFile(file) && isDiagramShareFile(file)) {
|
|
81
|
+
const suffix = '.planr-diagram-bundle.json';
|
|
82
|
+
const slug = path.basename(file).slice(0, -suffix.length);
|
|
83
|
+
if (!path.basename(file).endsWith(suffix) ||
|
|
84
|
+
path.basename(path.dirname(file)) !== slug ||
|
|
85
|
+
path.basename(path.dirname(path.dirname(file))) !== 'diagrams')
|
|
86
|
+
throw new Error('Authored diagrams must use diagrams/{slug}/{slug}.planr-diagram-bundle.json.');
|
|
87
|
+
const owner = await openDiagramOwner({
|
|
88
|
+
root: path.dirname(path.dirname(path.dirname(file))),
|
|
89
|
+
slug,
|
|
90
|
+
noOpen: options.noOpen === true,
|
|
91
|
+
port: options.port,
|
|
92
|
+
openUrl: options.openUrl,
|
|
93
|
+
});
|
|
94
|
+
return { ...owner, reviewPath: '' };
|
|
95
|
+
}
|
|
33
96
|
const pipeline = resolvePipelinePackage(false);
|
|
34
97
|
if (!pipeline)
|
|
35
98
|
throw new Error('Diagram studio requires the OpenPlanr workflow package.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-artifact-service.js","sourceRoot":"","sources":["../../src/services/diagram-artifact-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"diagram-artifact-service.js","sourceRoot":"","sources":["../../src/services/diagram-artifact-service.ts"],"names":[],"mappings":"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"}
|
package/docs/ARTIFACT_REVIEW.md
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# Artifact review and private sharing
|
|
2
2
|
|
|
3
|
-
`planr artifact`
|
|
4
|
-
|
|
3
|
+
`planr artifact` opens native diagrams, authored designs, and HTML artifacts for
|
|
4
|
+
local review or explicit encrypted sharing. Generic HTML sessions support
|
|
5
|
+
comments, pins, threads, and Approve or Request changes decisions.
|
|
5
6
|
JavaScript inside the artifact remains interactive in an opaque-origin,
|
|
6
7
|
network-blocked sandbox.
|
|
7
8
|
|
|
@@ -45,6 +46,41 @@ This is private artifact review, not standalone website hosting. Publishing a
|
|
|
45
46
|
top-level website would require a separate isolated artifact origin and is not
|
|
46
47
|
part of this command.
|
|
47
48
|
|
|
49
|
+
## Native diagram sharing
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
planr artifact open ./diagrams/handover/handover.manifest.json
|
|
53
|
+
planr artifact share ./diagrams/handover/handover.manifest.json --yes --no-open
|
|
54
|
+
planr artifact publish ./diagrams/handover/handover.manifest.json --yes
|
|
55
|
+
planr artifact sync ./diagrams/handover/handover.manifest.json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
An authored `diagrams/<slug>/<slug>.planr-diagram-bundle.json` is also accepted.
|
|
59
|
+
Sharing publishes the selected diagram's native scene without converting its
|
|
60
|
+
format or rerunning layout. The creation preview shows its title, source
|
|
61
|
+
revision, publication contents, destination and retention. Original source
|
|
62
|
+
bytes, local paths and private provenance are excluded.
|
|
63
|
+
|
|
64
|
+
Each diagram has a stable `/diagram/<id>` URL and a separate reviewer access
|
|
65
|
+
token. Use the local studio's **Share diagram** dialog to copy them separately.
|
|
66
|
+
Owner custody is kept privately outside the repository. Ordinary command output
|
|
67
|
+
contains no tokens or signing keys; `--secret-output` explicitly exports recovery
|
|
68
|
+
to a new private file. Reviews last until revoked or deleted and remain available
|
|
69
|
+
while the owner's laptop is offline.
|
|
70
|
+
|
|
71
|
+
Local edits remain unpublished until **Publish revision** or `artifact publish`.
|
|
72
|
+
Comments are tied to their published revision and element or scene position.
|
|
73
|
+
Earlier revisions stay readable but accept no new comments. Synchronization
|
|
74
|
+
imports feedback into the local ledger without modifying diagram content.
|
|
75
|
+
Reviewers can use outline/search, inspection, pan/zoom, Fit, Present, Discussion,
|
|
76
|
+
Revisions, and SVG/PNG or feedback export. The native shell loads its packaged
|
|
77
|
+
font before reporting readiness and preserves wide diagrams without an HTML
|
|
78
|
+
wrapper viewport.
|
|
79
|
+
|
|
80
|
+
An incompatible installed runtime or hosted service produces a compatibility
|
|
81
|
+
error. There is no automatic HTML fallback. To share an HTML snapshot, export
|
|
82
|
+
HTML first and explicitly use the generic snapshot route.
|
|
83
|
+
|
|
48
84
|
## Private links
|
|
49
85
|
|
|
50
86
|
```bash
|
package/docs/CLI.md
CHANGED
|
@@ -590,16 +590,26 @@ bundles); `OPENPLANR_ECOSYSTEM_SOURCE` points the check at another URL or file.
|
|
|
590
590
|
|
|
591
591
|
### `planr artifact`
|
|
592
592
|
|
|
593
|
-
Open, share, import, and export
|
|
593
|
+
Open, share, import, and export native diagrams, designs, and HTML reviews:
|
|
594
594
|
|
|
595
595
|
```bash
|
|
596
596
|
planr artifact <file>
|
|
597
597
|
planr artifact open <file> [--title <title>] [--root <asset-root>] [--theme auto|light|dark] [--presentation auto|document|canvas] [--port <port>] [--no-open] [--json]
|
|
598
598
|
planr artifact share <file> [--title <title>] [--root <asset-root>] [--presentation auto|document|canvas] [--snapshot] [--short] [--ttl 1d|7d|30d] [--secret-output <private-file>] [--no-open] [--json] [--yes]
|
|
599
|
-
planr artifact
|
|
599
|
+
planr artifact publish <diagram-manifest|diagram-bundle|design-document> [--yes] [--json]
|
|
600
|
+
planr artifact sync <diagram-manifest|diagram-bundle|design-document> [--json]
|
|
601
|
+
planr artifact import --secret-input <private-file|-> [--output <path>] [--allow-stale] [--json] [--yes]
|
|
600
602
|
planr artifact export <session-id> [--format json|markdown] [--output <path>]
|
|
601
603
|
```
|
|
602
604
|
|
|
605
|
+
Diagram manifests and authoring bundles share directly to one permanent native
|
|
606
|
+
review per stable `/diagram/<id>` link, with a separate reviewer access token.
|
|
607
|
+
The local studio's **Share diagram** dialog copies the link and token separately.
|
|
608
|
+
Owner credentials stay privately outside the repository. Publish revisions
|
|
609
|
+
explicitly; `sync` imports revision-bound feedback without changing the diagram.
|
|
610
|
+
Native diagram sharing does not accept `--snapshot`, `--short`, or `--ttl`;
|
|
611
|
+
export HTML first to choose the generic snapshot transport.
|
|
612
|
+
|
|
603
613
|
When `--root` is omitted, the artifact file's directory is the asset root. This
|
|
604
614
|
makes `planr artifact share /absolute/path/to/artifact.html` work without
|
|
605
615
|
changing directories or supplying a redundant root. Supported public HTTPS
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"kind": "host-native-adapter-registry",
|
|
3
3
|
"schemaVersion": "1.0.0",
|
|
4
4
|
"protocolVersion": "1.8.0",
|
|
5
|
-
"pipelineVersion": "0.55.
|
|
6
|
-
"pluginVersion": "2.2640.
|
|
5
|
+
"pipelineVersion": "0.55.6",
|
|
6
|
+
"pluginVersion": "2.2640.5",
|
|
7
7
|
"adapters": [
|
|
8
8
|
{
|
|
9
9
|
"id": "claude-code",
|
|
10
|
-
"version": "2.2640.
|
|
10
|
+
"version": "2.2640.5",
|
|
11
11
|
"capabilityLevel": "product",
|
|
12
12
|
"installScopes": [
|
|
13
13
|
"user",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
"id": "codex",
|
|
22
|
-
"version": "2.2640.
|
|
22
|
+
"version": "2.2640.5",
|
|
23
23
|
"capabilityLevel": "product",
|
|
24
24
|
"installScopes": [
|
|
25
25
|
"user",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"id": "cursor",
|
|
34
|
-
"version": "2.2640.
|
|
34
|
+
"version": "2.2640.5",
|
|
35
35
|
"capabilityLevel": "workflow",
|
|
36
36
|
"installScopes": [
|
|
37
37
|
"project"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"kind": "openplanr-capability-map",
|
|
3
3
|
"schemaVersion": "1.0.0",
|
|
4
|
-
"pluginVersion": "2.2640.
|
|
4
|
+
"pluginVersion": "2.2640.5",
|
|
5
5
|
"families": [
|
|
6
6
|
{
|
|
7
7
|
"id": "planning",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"id": "planr-artifact",
|
|
58
58
|
"name": "artifact",
|
|
59
59
|
"family": "artifact",
|
|
60
|
-
"description": "Open, share, import, or export an OpenPlanr HTML artifact review. Use when feedback must move between a local artifact and its review board.",
|
|
60
|
+
"description": "Open, share, import, or export an OpenPlanr diagram, design, or HTML artifact review. Use when feedback must move between a local artifact and its review board.",
|
|
61
61
|
"useWhen": [
|
|
62
62
|
"Open or share an HTML artifact review",
|
|
63
63
|
"Import artifact feedback and export the reviewed artifact"
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
"name": "OpenPlanr"
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
|
-
"version": "2.2640.
|
|
8
|
+
"version": "2.2640.5",
|
|
9
9
|
"description": "Generated local OpenPlanr package."
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "planr",
|
|
14
14
|
"source": "./openplanr",
|
|
15
|
-
"version": "2.2640.
|
|
15
|
+
"version": "2.2640.5",
|
|
16
16
|
"description": "Close the loop from intent to delivery. Plan, design, build, review, and operate from durable context in your repository.",
|
|
17
17
|
"strict": true
|
|
18
18
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "planr",
|
|
3
3
|
"displayName": "OpenPlanr",
|
|
4
|
-
"version": "2.2640.
|
|
4
|
+
"version": "2.2640.5",
|
|
5
5
|
"description": "Close the loop from intent to delivery. Plan, design, build, review, and operate from durable context in your repository.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "OpenPlanr",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"path": ".claude-plugin/plugin.json",
|
|
15
|
-
"digest": "sha256:
|
|
15
|
+
"digest": "sha256:535bb2a979a2226c38395acbee1628d8151f7c7559585ac2f8d145410999a21a"
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"path": "agents/planr-backend.md",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
"path": "README.md",
|
|
55
|
-
"digest": "sha256:
|
|
55
|
+
"digest": "sha256:68ef4ac080559079bedc2faeef39db8a5a5da9208cbcacc5fea4af1658fd68f5"
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
"path": "references/agents/shared/modes/default/backend.md",
|
|
@@ -166,9 +166,13 @@
|
|
|
166
166
|
"path": "skills/artifact/references/design-sharing.md",
|
|
167
167
|
"digest": "sha256:452c7e11b3366b026d9e90b664980b3b5bdf8359ccb1a2bab090b43ae3addd72"
|
|
168
168
|
},
|
|
169
|
+
{
|
|
170
|
+
"path": "skills/artifact/references/diagram-sharing.md",
|
|
171
|
+
"digest": "sha256:343e5e6d67e9ec120e5c8095f909e4f18d17afd9f669d9725ab9a99be850d9f7"
|
|
172
|
+
},
|
|
169
173
|
{
|
|
170
174
|
"path": "skills/artifact/SKILL.md",
|
|
171
|
-
"digest": "sha256:
|
|
175
|
+
"digest": "sha256:6225dd76d0411013f6d67b972718b5d91610658c3cd57ee7fa05917be282f1c5"
|
|
172
176
|
},
|
|
173
177
|
{
|
|
174
178
|
"path": "skills/browser-qa/SKILL.md",
|
|
@@ -388,7 +392,7 @@
|
|
|
388
392
|
},
|
|
389
393
|
{
|
|
390
394
|
"path": "skills/design-loop/scripts/design-artifact-shell.mjs",
|
|
391
|
-
"digest": "sha256:
|
|
395
|
+
"digest": "sha256:214b52aeafbf1996df76d3e2a8ff140240bec7aa477a798402e1f8af6ddac0ee"
|
|
392
396
|
},
|
|
393
397
|
{
|
|
394
398
|
"path": "skills/design-loop/scripts/design-document.mjs",
|
|
@@ -408,7 +412,7 @@
|
|
|
408
412
|
},
|
|
409
413
|
{
|
|
410
414
|
"path": "skills/design-loop/scripts/design-review-handoff.mjs",
|
|
411
|
-
"digest": "sha256:
|
|
415
|
+
"digest": "sha256:fcd27c05fd75fee7f40fee0241c1df4181d079d17d54fdf597af26135d65fc3e"
|
|
412
416
|
},
|
|
413
417
|
{
|
|
414
418
|
"path": "skills/design-loop/scripts/design-sandbox-guards.mjs",
|
|
@@ -416,7 +420,7 @@
|
|
|
416
420
|
},
|
|
417
421
|
{
|
|
418
422
|
"path": "skills/design-loop/scripts/design-share.mjs",
|
|
419
|
-
"digest": "sha256:
|
|
423
|
+
"digest": "sha256:6febde24a1fa6b29001a166c1997d759163dc79b2ff2a9a98094b0bb8aa81cda"
|
|
420
424
|
},
|
|
421
425
|
{
|
|
422
426
|
"path": "skills/design-loop/scripts/design.mjs",
|
|
@@ -444,7 +448,7 @@
|
|
|
444
448
|
},
|
|
445
449
|
{
|
|
446
450
|
"path": "skills/design-loop/scripts/runtime/packages/design/templates/studio/share.css",
|
|
447
|
-
"digest": "sha256:
|
|
451
|
+
"digest": "sha256:c1afe8271c85ca7523aa520daf093c24a653f9fe6e08caffd56391a8b592c206"
|
|
448
452
|
},
|
|
449
453
|
{
|
|
450
454
|
"path": "skills/design-loop/scripts/runtime/packages/design/templates/studio/share.js",
|
|
@@ -460,7 +464,7 @@
|
|
|
460
464
|
},
|
|
461
465
|
{
|
|
462
466
|
"path": "skills/design-loop/scripts/runtime/packages/protocol/package.json",
|
|
463
|
-
"digest": "sha256:
|
|
467
|
+
"digest": "sha256:f852e8672da74901a7fc3819c10abf37e27744ea40ec9af4c807be1fdbc9ad7c"
|
|
464
468
|
},
|
|
465
469
|
{
|
|
466
470
|
"path": "skills/design-loop/scripts/runtime/packages/protocol/registries/artifact-theme.json",
|
|
@@ -596,7 +600,7 @@
|
|
|
596
600
|
},
|
|
597
601
|
{
|
|
598
602
|
"path": "skills/design-review/scripts/design-artifact-shell.mjs",
|
|
599
|
-
"digest": "sha256:
|
|
603
|
+
"digest": "sha256:214b52aeafbf1996df76d3e2a8ff140240bec7aa477a798402e1f8af6ddac0ee"
|
|
600
604
|
},
|
|
601
605
|
{
|
|
602
606
|
"path": "skills/design-review/scripts/design-document.mjs",
|
|
@@ -616,7 +620,7 @@
|
|
|
616
620
|
},
|
|
617
621
|
{
|
|
618
622
|
"path": "skills/design-review/scripts/design-review-handoff.mjs",
|
|
619
|
-
"digest": "sha256:
|
|
623
|
+
"digest": "sha256:fcd27c05fd75fee7f40fee0241c1df4181d079d17d54fdf597af26135d65fc3e"
|
|
620
624
|
},
|
|
621
625
|
{
|
|
622
626
|
"path": "skills/design-review/scripts/design-sandbox-guards.mjs",
|
|
@@ -624,7 +628,7 @@
|
|
|
624
628
|
},
|
|
625
629
|
{
|
|
626
630
|
"path": "skills/design-review/scripts/design-share.mjs",
|
|
627
|
-
"digest": "sha256:
|
|
631
|
+
"digest": "sha256:6febde24a1fa6b29001a166c1997d759163dc79b2ff2a9a98094b0bb8aa81cda"
|
|
628
632
|
},
|
|
629
633
|
{
|
|
630
634
|
"path": "skills/design-review/scripts/design.mjs",
|
|
@@ -652,7 +656,7 @@
|
|
|
652
656
|
},
|
|
653
657
|
{
|
|
654
658
|
"path": "skills/design-review/scripts/runtime/packages/design/templates/studio/share.css",
|
|
655
|
-
"digest": "sha256:
|
|
659
|
+
"digest": "sha256:c1afe8271c85ca7523aa520daf093c24a653f9fe6e08caffd56391a8b592c206"
|
|
656
660
|
},
|
|
657
661
|
{
|
|
658
662
|
"path": "skills/design-review/scripts/runtime/packages/design/templates/studio/share.js",
|
|
@@ -668,7 +672,7 @@
|
|
|
668
672
|
},
|
|
669
673
|
{
|
|
670
674
|
"path": "skills/design-review/scripts/runtime/packages/protocol/package.json",
|
|
671
|
-
"digest": "sha256:
|
|
675
|
+
"digest": "sha256:f852e8672da74901a7fc3819c10abf37e27744ea40ec9af4c807be1fdbc9ad7c"
|
|
672
676
|
},
|
|
673
677
|
{
|
|
674
678
|
"path": "skills/design-review/scripts/runtime/packages/protocol/registries/artifact-theme.json",
|
|
@@ -804,7 +808,7 @@
|
|
|
804
808
|
},
|
|
805
809
|
{
|
|
806
810
|
"path": "skills/design/scripts/design-artifact-shell.mjs",
|
|
807
|
-
"digest": "sha256:
|
|
811
|
+
"digest": "sha256:214b52aeafbf1996df76d3e2a8ff140240bec7aa477a798402e1f8af6ddac0ee"
|
|
808
812
|
},
|
|
809
813
|
{
|
|
810
814
|
"path": "skills/design/scripts/design-document.mjs",
|
|
@@ -824,7 +828,7 @@
|
|
|
824
828
|
},
|
|
825
829
|
{
|
|
826
830
|
"path": "skills/design/scripts/design-review-handoff.mjs",
|
|
827
|
-
"digest": "sha256:
|
|
831
|
+
"digest": "sha256:fcd27c05fd75fee7f40fee0241c1df4181d079d17d54fdf597af26135d65fc3e"
|
|
828
832
|
},
|
|
829
833
|
{
|
|
830
834
|
"path": "skills/design/scripts/design-sandbox-guards.mjs",
|
|
@@ -832,7 +836,7 @@
|
|
|
832
836
|
},
|
|
833
837
|
{
|
|
834
838
|
"path": "skills/design/scripts/design-share.mjs",
|
|
835
|
-
"digest": "sha256:
|
|
839
|
+
"digest": "sha256:6febde24a1fa6b29001a166c1997d759163dc79b2ff2a9a98094b0bb8aa81cda"
|
|
836
840
|
},
|
|
837
841
|
{
|
|
838
842
|
"path": "skills/design/scripts/design.mjs",
|
|
@@ -860,7 +864,7 @@
|
|
|
860
864
|
},
|
|
861
865
|
{
|
|
862
866
|
"path": "skills/design/scripts/runtime/packages/design/templates/studio/share.css",
|
|
863
|
-
"digest": "sha256:
|
|
867
|
+
"digest": "sha256:c1afe8271c85ca7523aa520daf093c24a653f9fe6e08caffd56391a8b592c206"
|
|
864
868
|
},
|
|
865
869
|
{
|
|
866
870
|
"path": "skills/design/scripts/runtime/packages/design/templates/studio/share.js",
|
|
@@ -876,7 +880,7 @@
|
|
|
876
880
|
},
|
|
877
881
|
{
|
|
878
882
|
"path": "skills/design/scripts/runtime/packages/protocol/package.json",
|
|
879
|
-
"digest": "sha256:
|
|
883
|
+
"digest": "sha256:f852e8672da74901a7fc3819c10abf37e27744ea40ec9af4c807be1fdbc9ad7c"
|
|
880
884
|
},
|
|
881
885
|
{
|
|
882
886
|
"path": "skills/design/scripts/runtime/packages/protocol/registries/artifact-theme.json",
|
|
@@ -974,9 +978,13 @@
|
|
|
974
978
|
"path": "skills/diagram/references/diagram-intent-to-ir.md",
|
|
975
979
|
"digest": "sha256:ff8179545fb8aa017acff90cca81896b295682beacc53a82dac8a32f4fb1e005"
|
|
976
980
|
},
|
|
981
|
+
{
|
|
982
|
+
"path": "skills/diagram/references/diagram-sharing.md",
|
|
983
|
+
"digest": "sha256:343e5e6d67e9ec120e5c8095f909e4f18d17afd9f669d9725ab9a99be850d9f7"
|
|
984
|
+
},
|
|
977
985
|
{
|
|
978
986
|
"path": "skills/diagram/SKILL.md",
|
|
979
|
-
"digest": "sha256:
|
|
987
|
+
"digest": "sha256:8a6f63b692cf9979036e62585a200f5539b75ceb81bb87437166ddaf668c7d43"
|
|
980
988
|
},
|
|
981
989
|
{
|
|
982
990
|
"path": "skills/doctor/references/upgrade.md",
|
|
@@ -1044,7 +1052,7 @@
|
|
|
1044
1052
|
},
|
|
1045
1053
|
{
|
|
1046
1054
|
"path": "skills/plan/scripts/design-artifact-shell.mjs",
|
|
1047
|
-
"digest": "sha256:
|
|
1055
|
+
"digest": "sha256:214b52aeafbf1996df76d3e2a8ff140240bec7aa477a798402e1f8af6ddac0ee"
|
|
1048
1056
|
},
|
|
1049
1057
|
{
|
|
1050
1058
|
"path": "skills/plan/scripts/design-document.mjs",
|
|
@@ -1064,7 +1072,7 @@
|
|
|
1064
1072
|
},
|
|
1065
1073
|
{
|
|
1066
1074
|
"path": "skills/plan/scripts/design-review-handoff.mjs",
|
|
1067
|
-
"digest": "sha256:
|
|
1075
|
+
"digest": "sha256:fcd27c05fd75fee7f40fee0241c1df4181d079d17d54fdf597af26135d65fc3e"
|
|
1068
1076
|
},
|
|
1069
1077
|
{
|
|
1070
1078
|
"path": "skills/plan/scripts/design-sandbox-guards.mjs",
|
|
@@ -1072,7 +1080,7 @@
|
|
|
1072
1080
|
},
|
|
1073
1081
|
{
|
|
1074
1082
|
"path": "skills/plan/scripts/design-share.mjs",
|
|
1075
|
-
"digest": "sha256:
|
|
1083
|
+
"digest": "sha256:6febde24a1fa6b29001a166c1997d759163dc79b2ff2a9a98094b0bb8aa81cda"
|
|
1076
1084
|
},
|
|
1077
1085
|
{
|
|
1078
1086
|
"path": "skills/plan/scripts/design.mjs",
|
|
@@ -1104,7 +1112,7 @@
|
|
|
1104
1112
|
},
|
|
1105
1113
|
{
|
|
1106
1114
|
"path": "skills/plan/scripts/runtime/packages/design/templates/studio/share.css",
|
|
1107
|
-
"digest": "sha256:
|
|
1115
|
+
"digest": "sha256:c1afe8271c85ca7523aa520daf093c24a653f9fe6e08caffd56391a8b592c206"
|
|
1108
1116
|
},
|
|
1109
1117
|
{
|
|
1110
1118
|
"path": "skills/plan/scripts/runtime/packages/design/templates/studio/share.js",
|
|
@@ -1120,7 +1128,7 @@
|
|
|
1120
1128
|
},
|
|
1121
1129
|
{
|
|
1122
1130
|
"path": "skills/plan/scripts/runtime/packages/protocol/package.json",
|
|
1123
|
-
"digest": "sha256:
|
|
1131
|
+
"digest": "sha256:f852e8672da74901a7fc3819c10abf37e27744ea40ec9af4c807be1fdbc9ad7c"
|
|
1124
1132
|
},
|
|
1125
1133
|
{
|
|
1126
1134
|
"path": "skills/plan/scripts/runtime/packages/protocol/registries/artifact-theme.json",
|
|
@@ -1287,5 +1295,5 @@
|
|
|
1287
1295
|
"digest": "sha256:06048f24128098919931db60272e0e14fe51bcbeba4b499db587e3b89d7bb3b9"
|
|
1288
1296
|
}
|
|
1289
1297
|
],
|
|
1290
|
-
"contentDigest": "sha256:
|
|
1298
|
+
"contentDigest": "sha256:7cadd202d2adc27ca6cb8e909cd0b546ce0eef2ce9b7474077a0b73edba3a9fa"
|
|
1291
1299
|
}
|
|
@@ -17,7 +17,7 @@ Follow with `/planr:plan` to decompose the specification into stories and tasks,
|
|
|
17
17
|
## Install the CLI
|
|
18
18
|
|
|
19
19
|
Several skills call the deterministic `planr` CLI from the `openplanr` npm package, which ships
|
|
20
|
-
this plugin at the same version (2.2640.
|
|
20
|
+
this plugin at the same version (2.2640.5):
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
23
|
npm install -g openplanr
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: artifact
|
|
3
|
-
description: Open, share, import, or export an OpenPlanr HTML artifact review. Use when feedback must move between a local artifact and its review board.
|
|
3
|
+
description: Open, share, import, or export an OpenPlanr diagram, design, or HTML artifact review. Use when feedback must move between a local artifact and its review board.
|
|
4
4
|
license: MIT
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -14,7 +14,15 @@ relaunch the active coding agent from inside this skill.
|
|
|
14
14
|
Generic artifacts default to the edge-to-edge `document` presentation. Use
|
|
15
15
|
`--presentation canvas` only for an explicitly spatial or zoomable review,
|
|
16
16
|
or `--presentation document` to force the reading surface.
|
|
17
|
-
2.
|
|
17
|
+
2. For a diagram manifest or authored bundle, read
|
|
18
|
+
[diagram-sharing.md](references/diagram-sharing.md). `planr artifact share
|
|
19
|
+
<manifest-or-bundle>` creates a native permanent encrypted review with a stable
|
|
20
|
+
URL and a separately entered access token. Use the local **Share diagram**
|
|
21
|
+
dialog to copy it. Publish only an explicitly requested update with `planr
|
|
22
|
+
artifact publish <manifest-or-bundle>`; synchronize feedback with `planr
|
|
23
|
+
artifact sync <manifest-or-bundle>`. Verify the actual shared native canvas,
|
|
24
|
+
fonts and source revision before describing the hosted result as verified.
|
|
25
|
+
Sharing is always explicit. Run `planr artifact share <file>` only after the
|
|
18
26
|
user asks to share. Before sharing or publishing a design document, read
|
|
19
27
|
[design-sharing.md](references/design-sharing.md) and author or refresh its
|
|
20
28
|
sibling `review-context.json` in this active host session. Ground the welcome
|
|
@@ -43,8 +51,10 @@ relaunch the active coding agent from inside this skill.
|
|
|
43
51
|
Local review is loopback-only. Opening, approving, finishing, or importing an
|
|
44
52
|
artifact never publishes it automatically.
|
|
45
53
|
|
|
46
|
-
|
|
47
|
-
runs it inside an invisible opaque-origin sandbox.
|
|
54
|
+
For generic HTML, the CLI bundles complete local HTML/CSS/JavaScript before
|
|
55
|
+
review or sharing and runs it inside an invisible opaque-origin sandbox. Native
|
|
56
|
+
diagram reviews mount only validated passive SVG or a read-only authoring
|
|
57
|
+
projection; sharing never grants source-edit permission. This is private review, not
|
|
48
58
|
standalone website hosting; never describe a review URL as deploying the source
|
|
49
59
|
artifact.
|
|
50
60
|
|