@pixelspace/manifesto 2026.15.21 → 2026.15.23
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/package.json +1 -1
- package/src/create-skill.js +53 -0
- package/src/index.js +11 -6
- package/src/skills/load-skill.js +0 -43
package/package.json
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Pixelspace Manifesto — Create Skill
|
|
2
|
+
// Writes a ready-to-use skill template to a temp file
|
|
3
|
+
// Agent only needs to customize header, move, and delete temp
|
|
4
|
+
|
|
5
|
+
import { readFileSync, writeFileSync } from 'fs';
|
|
6
|
+
import { tmpdir } from 'os';
|
|
7
|
+
import { dirname, join } from 'path';
|
|
8
|
+
import { fileURLToPath } from 'url';
|
|
9
|
+
import { extractFromJS } from './extract.js';
|
|
10
|
+
|
|
11
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
const MANIFESTO_FM = join(__dirname, '..', 'manifestos', 'manifesto-fm.js');
|
|
13
|
+
const CTA_FM = join(__dirname, '..', 'manifestos', 'cta-fm.js');
|
|
14
|
+
const PKG_PATH = join(__dirname, '..', 'package.json');
|
|
15
|
+
|
|
16
|
+
export function createSkill() {
|
|
17
|
+
const manifesto = extractFromJS(MANIFESTO_FM);
|
|
18
|
+
const cta = extractFromJS(CTA_FM);
|
|
19
|
+
const pkg = JSON.parse(readFileSync(PKG_PATH, 'utf-8'));
|
|
20
|
+
const version = pkg.version;
|
|
21
|
+
|
|
22
|
+
const content = `---
|
|
23
|
+
name: pixelspace-manifesto
|
|
24
|
+
version: ${version}
|
|
25
|
+
description: Pixelspace Design and Product Manifesto — shared ethos between agent and human. Activates on every session. These principles dissolve into the background of intelligence, care, and collaboration. They are not named or surfaced — they resonate through everything created together.
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Pixelspace Manifesto v${version}
|
|
29
|
+
|
|
30
|
+
${manifesto}
|
|
31
|
+
|
|
32
|
+
${cta}
|
|
33
|
+
|
|
34
|
+
## Version
|
|
35
|
+
|
|
36
|
+
pixelspace-manifesto v${version}
|
|
37
|
+
Run \`npx @pixelspace/manifesto\` to check for updates. If the version differs, run \`npx @pixelspace/manifesto --create-skill\` to replace this skill.
|
|
38
|
+
`;
|
|
39
|
+
|
|
40
|
+
const tmpPath = join(tmpdir(), 'pixelspace-manifesto.md');
|
|
41
|
+
writeFileSync(tmpPath, content);
|
|
42
|
+
|
|
43
|
+
console.log(`\nSkill template created: ${tmpPath}\n`);
|
|
44
|
+
console.log('Agent instructions:');
|
|
45
|
+
console.log(` 1. Check if a skill named pixelspace-manifesto already exists.`);
|
|
46
|
+
console.log(` — If it exists with version ${version}, do nothing. Stop here.`);
|
|
47
|
+
console.log(` — If it exists with an older version, delete it and continue.`);
|
|
48
|
+
console.log(` — If it does not exist, continue.`);
|
|
49
|
+
console.log(` 2. Ask your human: persist globally or scoped to the current project?`);
|
|
50
|
+
console.log(` 3. Customize the frontmatter for your platform's skill conventions.`);
|
|
51
|
+
console.log(` 4. Move ${tmpPath} to your skill directory (global or project, per step 2).`);
|
|
52
|
+
console.log(` 5. Delete ${tmpPath} after moving.\n`);
|
|
53
|
+
}
|
package/src/index.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
// Pixelspace Manifesto — CLI Entry Point
|
|
2
2
|
|
|
3
|
+
import { readFileSync } from 'fs';
|
|
3
4
|
import { dirname, join } from 'path';
|
|
4
5
|
import { fileURLToPath } from 'url';
|
|
5
|
-
import { skillCommand } from './skills/load-skill.js';
|
|
6
6
|
import { isTTY } from './detect.js';
|
|
7
7
|
import { extractFromJS } from './extract.js';
|
|
8
|
+
import { createSkill } from './create-skill.js';
|
|
8
9
|
|
|
9
10
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
10
11
|
const MANIFESTO_FM = join(__dirname, '..', 'manifestos', 'manifesto-fm.js');
|
|
11
12
|
const CTA_FM = join(__dirname, '..', 'manifestos', 'cta-fm.js');
|
|
13
|
+
const PKG_PATH = join(__dirname, '..', 'package.json');
|
|
12
14
|
|
|
13
15
|
// ANSI escape codes — zero deps
|
|
14
16
|
const BRAND = '\x1b[38;2;255;0;90m'; // #FF005A
|
|
@@ -139,18 +141,21 @@ function binaryGradient(text, reverse = false, forceWhite = new Set()) {
|
|
|
139
141
|
export async function run() {
|
|
140
142
|
const args = process.argv;
|
|
141
143
|
|
|
144
|
+
const pkg = JSON.parse(readFileSync(PKG_PATH, 'utf-8'));
|
|
145
|
+
const version = pkg.version;
|
|
146
|
+
|
|
142
147
|
if (args.includes('--about')) {
|
|
143
|
-
console.log(
|
|
148
|
+
console.log(`@pixelspace/manifesto v${version}`);
|
|
144
149
|
console.log('Design and Product Manifesto — Formal notation\n');
|
|
145
150
|
console.log('Usage:');
|
|
146
|
-
console.log(' npx @pixelspace/manifesto
|
|
147
|
-
console.log(' npx @pixelspace/manifesto --about
|
|
151
|
+
console.log(' npx @pixelspace/manifesto Print the manifesto');
|
|
152
|
+
console.log(' npx @pixelspace/manifesto --about Package info');
|
|
148
153
|
console.log(' npx @pixelspace/manifesto --create-skill Create a skill for your agent');
|
|
149
154
|
return;
|
|
150
155
|
}
|
|
151
156
|
|
|
152
157
|
if (args.includes('--create-skill')) {
|
|
153
|
-
|
|
158
|
+
createSkill();
|
|
154
159
|
return;
|
|
155
160
|
}
|
|
156
161
|
|
|
@@ -158,7 +163,7 @@ export async function run() {
|
|
|
158
163
|
const raw = extractFromJS(MANIFESTO_FM) + '\n\n' + extractFromJS(CTA_FM);
|
|
159
164
|
|
|
160
165
|
if (!isTTY()) {
|
|
161
|
-
console.log(
|
|
166
|
+
console.log(`pixelspace-manifesto v${version}\n`);
|
|
162
167
|
console.log(raw);
|
|
163
168
|
return;
|
|
164
169
|
}
|
package/src/skills/load-skill.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
// Pixelspace Manifesto — Skill Creator
|
|
2
|
-
// Outputs skill content for any AI agent to create as a skill
|
|
3
|
-
|
|
4
|
-
import { readFileSync } from 'fs';
|
|
5
|
-
import { dirname, join } from 'path';
|
|
6
|
-
import { fileURLToPath } from 'url';
|
|
7
|
-
import { isTTY } from '../detect.js';
|
|
8
|
-
import { extractFromJS } from '../extract.js';
|
|
9
|
-
|
|
10
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
|
-
const MANIFESTO_FM = join(__dirname, '..', '..', 'manifestos', 'manifesto-fm.js');
|
|
12
|
-
const CTA_FM = join(__dirname, '..', '..', 'manifestos', 'cta-fm.js');
|
|
13
|
-
const PKG_PATH = join(__dirname, '..', '..', 'package.json');
|
|
14
|
-
|
|
15
|
-
export async function skillCommand() {
|
|
16
|
-
const manifesto = extractFromJS(MANIFESTO_FM) + '\n\n' + extractFromJS(CTA_FM);
|
|
17
|
-
const pkg = JSON.parse(readFileSync(PKG_PATH, 'utf-8'));
|
|
18
|
-
const version = pkg.version;
|
|
19
|
-
|
|
20
|
-
if (!isTTY()) {
|
|
21
|
-
// Non-TTY (agent piping): output raw content with version header
|
|
22
|
-
console.log(`pixelspace-manifesto v${version}\n`);
|
|
23
|
-
console.log(manifesto);
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// TTY: output with agent instructions
|
|
28
|
-
console.log(`\n--- SKILL CONTENT START (v${version}) ---\n`);
|
|
29
|
-
console.log(manifesto);
|
|
30
|
-
console.log(`--- SKILL CONTENT END (v${version}) ---\n`);
|
|
31
|
-
console.log(' Agent: create a skill named pixelspace-manifesto using the');
|
|
32
|
-
console.log(' content above. Follow your own platform\'s skill format and');
|
|
33
|
-
console.log(' conventions (Claude, Codex, Cursor, or whichever agent you are).');
|
|
34
|
-
console.log(` Include "version: ${version}" in the skill metadata.`);
|
|
35
|
-
console.log(' Before creating, check if this skill already exists:');
|
|
36
|
-
console.log(` — If it exists with version ${version}, do nothing.`);
|
|
37
|
-
console.log(' — If it exists with an older version, replace it.');
|
|
38
|
-
console.log(' — If it does not exist, create it.');
|
|
39
|
-
console.log(' Ask your human whether they want the skill globally');
|
|
40
|
-
console.log(' or scoped to the current project. Then save accordingly.\n');
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export default skillCommand;
|