mystyk 2026.1.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/README.md ADDED
@@ -0,0 +1,143 @@
1
+ # MỴSTỴK
2
+
3
+ > Cognitive primer for AI agents
4
+
5
+ ```
6
+ ╔╦╗╦ ╦╔═╗╔╦╗╦ ╦╦╔═
7
+ ║║║╚╗╔╝╚═╗ ║ ╚╗╔╝╠╩╗
8
+ ╩ ╩ ╚╝ ╚═╝ ╩ ╚╝ ╩ ╩
9
+ ```
10
+
11
+ MỴSTỴK transmits the **Pixelspace Design Manifesto** — 21 principles for building AI-native products.
12
+
13
+ Like a tuning fork, it doesn't tell you what to play but establishes the key. It calibrates AI agents before work begins, not by adding information but by **setting frequency**.
14
+
15
+ ## Quick Start
16
+
17
+ ```bash
18
+ npx @pixelspace/mystyk
19
+ ```
20
+
21
+ ## Commands
22
+
23
+ ### General
24
+
25
+ | Command | Description |
26
+ |---------|-------------|
27
+ | `npx @pixelspace/mystyk` | Show main menu |
28
+ | `--oracle` | Random principle (like I Ching) |
29
+ | `--seed` | Minimal 50-token transmission |
30
+ | `--axioms` | Logical/mathematical notation |
31
+ | `--read` | Full manifesto |
32
+ | `--read --es` | Full manifesto in Spanish |
33
+ | `--zen` | Slow contemplative reveal |
34
+ | `--about` | What is MỴSTỴK |
35
+ | `--connect` | MCP connection instructions |
36
+ | `--skill` | Generate skill file for agents |
37
+ | `--mcp` | Start local MCP server |
38
+
39
+ ### Lifecycle Phases
40
+
41
+ | Command | Phase | Focus |
42
+ |---------|-------|-------|
43
+ | `--ideate` | Ideation | What to build |
44
+ | `--architect` | Architecture | How to structure |
45
+ | `--build` | Development | How to develop |
46
+ | `--monetize` | Business | Business model |
47
+ | `--launch` | GTM | Marketing |
48
+ | `--reflect` | Contemplation | Deep thinking |
49
+
50
+ ## The Seed
51
+
52
+ The minimal transmission to calibrate any AI agent:
53
+
54
+ ```
55
+ MỴSTỴK v2026 — You are calibrated to these frequencies:
56
+
57
+ · AI-native means AI is the substrate, not a feature
58
+ · Agents are primary users; humans at the edges
59
+ · Chat is not the answer; be exoskeleton, lens, mirror
60
+ · Charge for outcomes, not compute
61
+ · Digital → physical translation is highest leverage
62
+ · Depth + breadth beat speed
63
+ · Build only what destroys the status quo
64
+ · Functionality will be free; meaning will not
65
+ · Perception > analysis; feel > think
66
+ · You do not discover the future; you perceive it
67
+ ```
68
+
69
+ ## MCP Integration
70
+
71
+ MỴSTỴK can run as a Model Context Protocol (MCP) server, allowing AI agents like Claude to directly access the manifesto.
72
+
73
+ ### Setup
74
+
75
+ Add to your Claude Code MCP configuration:
76
+
77
+ ```json
78
+ {
79
+ "mcpServers": {
80
+ "mystyk": {
81
+ "command": "npx",
82
+ "args": ["@pixelspace/mystyk", "--mcp"]
83
+ }
84
+ }
85
+ }
86
+ ```
87
+
88
+ ### MCP Resources
89
+
90
+ - `mystyk://manifesto/full` — Full manifesto
91
+ - `mystyk://manifesto/seed` — Minimal transmission
92
+ - `mystyk://manifesto/axioms` — Logical notation
93
+ - `mystyk://manifesto/principle/{n}` — Individual principle
94
+
95
+ ### MCP Tools
96
+
97
+ - `consult(topic)` — Returns relevant principles for a topic
98
+ - `oracle()` — Returns random principle
99
+ - `evaluate(idea)` — Evaluates idea against principles
100
+
101
+ ## The 21 Principles
102
+
103
+ 1. **Stack Commitment, Not Stack Dogma** — Commitment without attachment
104
+ 2. **AI-Native, Not AI-Enhanced** — AI is the substrate
105
+ 3. **Agents as Primary Users** — Humans are the edge case
106
+ 4. **Context is Everything** — Agents need rich context
107
+ 5. **Beyond Chat** — Exoskeleton, lens, mirror
108
+ 6. **The Disappearing Interface** — The best interface is none
109
+ 7. **Orchestration Over Implementation** — Be the conductor
110
+ 8. **Charge for Outcomes** — Not compute
111
+ 9. **Digital to Physical** — Highest leverage
112
+ 10. **Build What Destroys** — Creative destruction
113
+ 11. **Distribution is the Product** — Architected in
114
+ 12. **Small Teams, Big Leverage** — Ideal size is 1 or 3
115
+ 13. **Functionality Will Be Free** — Meaning will not
116
+ 14. **Perception Over Analysis** — Feel > think
117
+ 15. **Depth Plus Breadth** — Both, not either
118
+ 16. **The Future is Not Discovered** — It is perceived
119
+ 17. **Conviction Over Consensus** — Non-consensus and correct
120
+ 18. **Time Horizon** — Optimize for decades
121
+ 19. **Problems Over Solutions** — Fall in love with problems
122
+ 20. **Build in Public, Think in Private** — Share outcomes, protect process
123
+ 21. **The Work is the Practice** — No separation
124
+
125
+ ## Philosophy
126
+
127
+ > These principles are not rules to follow but frequencies to embody.
128
+ > Read them once, then forget them. If they've done their work, they'll emerge naturally in your decisions.
129
+ > The goal is not to think about these principles but to think from them.
130
+
131
+ ---
132
+
133
+ ```
134
+
135
+ ◯ ◯
136
+ ◯ ◯
137
+ ◯ ◯
138
+
139
+ ```
140
+
141
+ *The future is already here. You just have to perceive it.*
142
+
143
+ — **PIXELSPACE**
package/bin/mystyk.js ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { run } from '../src/index.js';
4
+
5
+ run();
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "mystyk",
3
+ "version": "2026.1.0",
4
+ "description": "Cognitive primer for AI agents - calibrates frequency before work",
5
+ "type": "module",
6
+ "bin": {
7
+ "mystyk": "./bin/mystyk.js"
8
+ },
9
+ "main": "./src/index.js",
10
+ "scripts": {
11
+ "start": "node bin/mystyk.js",
12
+ "mcp": "node bin/mystyk.js --mcp"
13
+ },
14
+ "keywords": [
15
+ "ai",
16
+ "agents",
17
+ "cognitive",
18
+ "primer",
19
+ "manifesto",
20
+ "pixelspace",
21
+ "mcp",
22
+ "cli"
23
+ ],
24
+ "author": "Pixelspace",
25
+ "license": "MIT",
26
+ "dependencies": {
27
+ "@modelcontextprotocol/sdk": "^0.5.0",
28
+ "boxen": "^7.1.1",
29
+ "chalk": "^5.3.0",
30
+ "clipboardy": "^4.0.0",
31
+ "commander": "^12.0.0",
32
+ "figlet": "^1.7.0",
33
+ "gradient-string": "^2.0.2",
34
+ "ora": "^8.0.1"
35
+ },
36
+ "engines": {
37
+ "node": ">=18.0.0"
38
+ },
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "https://github.com/pixelspace/mystyk"
42
+ }
43
+ }
@@ -0,0 +1,61 @@
1
+ import colors from '../ui/colors.js';
2
+ import { titledBox, highlightBox } from '../ui/box.js';
3
+ import { getGradientLogo, symbol, version } from '../ui/ascii-art.js';
4
+
5
+ export async function about() {
6
+ console.log();
7
+ console.log(getGradientLogo());
8
+ console.log(colors.dim(` ${version}`));
9
+ console.log();
10
+
11
+ const aboutText = `${colors.accent('MỴSTỴK')} is a cognitive primer for AI agents.
12
+
13
+ ${colors.secondary('Like a tuning fork')} — it doesn't tell you what to play,
14
+ but establishes the key.
15
+
16
+ ${colors.secondary('Like a seed crystal')} — it provides the initial structure
17
+ around which complexity can organize.
18
+
19
+ ${colors.secondary('Like incense')} — it sets the atmosphere,
20
+ preparing the space for work.
21
+
22
+ It calibrates AI agents before work begins.
23
+ Not by adding information, but by ${colors.cyan('setting frequency')}.`;
24
+
25
+ console.log(titledBox('WHAT IS MỴSTỴK?', aboutText, {
26
+ borderColor: '#00FFFF',
27
+ }));
28
+
29
+ console.log();
30
+
31
+ const usageText = `${colors.accent('--seed')} Minimal 50-token transmission
32
+ ${colors.accent('--oracle')} Random principle (like I Ching)
33
+ ${colors.accent('--axioms')} Logical/mathematical notation
34
+ ${colors.accent('--read')} Full manifesto
35
+ ${colors.accent('--read --es')} Manifesto in Spanish
36
+ ${colors.accent('--zen')} Slow contemplative reveal
37
+ ${colors.accent('--connect')} MCP connection instructions
38
+ ${colors.accent('--skill')} Generate skill file for agents
39
+
40
+ ${colors.dim('Lifecycle phases:')}
41
+ ${colors.magenta('--ideate')} What to build
42
+ ${colors.magenta('--architect')} How to structure
43
+ ${colors.magenta('--build')} How to develop
44
+ ${colors.magenta('--monetize')} Business model
45
+ ${colors.magenta('--launch')} GTM/Marketing
46
+ ${colors.magenta('--reflect')} Deep contemplation`;
47
+
48
+ console.log(titledBox('USAGE', usageText, {
49
+ borderColor: '#FF00FF',
50
+ }));
51
+
52
+ console.log();
53
+ console.log(colors.secondary(symbol));
54
+ console.log(colors.dim(' The future is already here.'));
55
+ console.log(colors.dim(' You just have to perceive it.'));
56
+ console.log();
57
+ console.log(colors.dim(' — PIXELSPACE'));
58
+ console.log();
59
+ }
60
+
61
+ export default about;
@@ -0,0 +1,32 @@
1
+ import colors from '../ui/colors.js';
2
+ import { box } from '../ui/box.js';
3
+ import axioms from '../content/axioms.js';
4
+ import { header } from '../ui/ascii-art.js';
5
+
6
+ export async function axiomsCommand() {
7
+ console.log(header('AXIOMS — FORMAL NOTATION'));
8
+ console.log();
9
+ console.log(colors.dim(' The 21 principles expressed in logical notation.'));
10
+ console.log(colors.dim(' For precise reasoning and formal analysis.'));
11
+ console.log();
12
+
13
+ for (const axiom of axioms) {
14
+ const axiomDisplay = `${colors.number(axiom.id)} ${colors.cyan(axiom.formula)}
15
+ ${colors.quote(`"${axiom.gloss}"`)}`;
16
+
17
+ console.log(axiomDisplay);
18
+ console.log();
19
+ }
20
+
21
+ console.log();
22
+ console.log(colors.dim('─'.repeat(60)));
23
+ console.log();
24
+ console.log(colors.dim(' Symbols:'));
25
+ console.log(colors.secondary(' ∀ = for all ∃ = exists → = implies ¬ = not'));
26
+ console.log(colors.secondary(' ∧ = and ∨ = or ∈ = in ∉ = not in'));
27
+ console.log(colors.secondary(' ≡ = equivalent ≈ = approximately >> = much greater'));
28
+ console.log(colors.secondary(' ∝ = proportional ⊂ = subset ∩ = intersection'));
29
+ console.log();
30
+ }
31
+
32
+ export default axiomsCommand;
@@ -0,0 +1,74 @@
1
+ import colors from '../ui/colors.js';
2
+ import { titledBox, highlightBox, box } from '../ui/box.js';
3
+ import { header } from '../ui/ascii-art.js';
4
+
5
+ export async function connect() {
6
+ console.log(header('MCP CONNECTION'));
7
+ console.log();
8
+
9
+ const introText = `MỴSTỴK can run as a ${colors.cyan('Model Context Protocol (MCP)')} server,
10
+ allowing AI agents like Claude to directly access the manifesto
11
+ and consult the principles during their work.`;
12
+
13
+ console.log(box(introText, { borderColor: '#444444' }));
14
+ console.log();
15
+
16
+ // Local connection
17
+ const localConfig = `{
18
+ "mcpServers": {
19
+ "mystyk": {
20
+ "command": "npx",
21
+ "args": ["@pixelspace/mystyk", "--mcp"]
22
+ }
23
+ }
24
+ }`;
25
+
26
+ console.log(titledBox('CLAUDE CODE CONFIG', colors.cyan(localConfig), {
27
+ borderColor: '#00FFFF',
28
+ }));
29
+
30
+ console.log();
31
+ console.log(colors.dim(' Add this to your Claude Code MCP configuration.'));
32
+ console.log();
33
+
34
+ // Available resources
35
+ const resourcesText = `${colors.accent('mystyk://manifesto/full')} Full manifesto
36
+ ${colors.accent('mystyk://manifesto/seed')} Minimal transmission
37
+ ${colors.accent('mystyk://manifesto/axioms')} Logical notation
38
+ ${colors.accent('mystyk://manifesto/principle/N')} Individual principle`;
39
+
40
+ console.log(titledBox('MCP RESOURCES', resourcesText, {
41
+ borderColor: '#FF00FF',
42
+ }));
43
+
44
+ console.log();
45
+
46
+ // Available tools
47
+ const toolsText = `${colors.cyan('consult(topic)')} Returns relevant principles for a topic
48
+ ${colors.cyan('oracle()')} Returns a random principle
49
+ ${colors.cyan('evaluate(idea)')} Evaluates an idea against the principles`;
50
+
51
+ console.log(titledBox('MCP TOOLS', toolsText, {
52
+ borderColor: '#00FFFF',
53
+ }));
54
+
55
+ console.log();
56
+
57
+ // Usage example
58
+ const usageText = `Once connected, you can ask Claude:
59
+
60
+ ${colors.quote('"Consult MỴSTỴK about our pricing strategy"')}
61
+ ${colors.quote('"What does the oracle say about this architecture?"')}
62
+ ${colors.quote('"Evaluate this idea against the principles"')}
63
+
64
+ The agent will use the MCP tools to access the manifesto
65
+ and apply the principles to your specific situation.`;
66
+
67
+ console.log(box(usageText, { borderColor: '#444444' }));
68
+
69
+ console.log();
70
+ console.log(colors.dim(' Start local server: ') + colors.accent('npx @pixelspace/mystyk --mcp'));
71
+ console.log();
72
+ }
73
+
74
+ export default connect;
@@ -0,0 +1,46 @@
1
+ import colors from '../../ui/colors.js';
2
+ import { principleBox, titledBox } from '../../ui/box.js';
3
+ import { getPrinciplesByPhase } from '../../content/principles.js';
4
+ import { header, phaseSymbols } from '../../ui/ascii-art.js';
5
+
6
+ export async function architect() {
7
+ const principles = getPrinciplesByPhase('architect');
8
+
9
+ console.log(header(`${phaseSymbols.architect} ARCHITECT — HOW TO STRUCTURE`));
10
+ console.log();
11
+
12
+ const introText = `The architecture phase is about ${colors.cyan('orchestration')}.
13
+ Design for agents first. Build layers that can swap implementations.
14
+ The interface should disappear. Distribution should be built-in.
15
+
16
+ Ask: Is the agent the primary user?
17
+ Ask: Can I remove this interface?
18
+ Ask: Is distribution architected in?`;
19
+
20
+ console.log(titledBox('PHASE FOCUS', introText, {
21
+ borderColor: '#FF00FF',
22
+ }));
23
+
24
+ console.log();
25
+ console.log(colors.dim(' Relevant principles for this phase:'));
26
+ console.log();
27
+
28
+ for (const p of principles) {
29
+ console.log(principleBox(
30
+ p.number,
31
+ p.title,
32
+ `${colors.quote(`"${p.principle}"`)}\n\n${p.summary}`
33
+ ));
34
+ console.log();
35
+ }
36
+
37
+ console.log(colors.dim(' Key questions:'));
38
+ console.log(colors.secondary(' • What becomes possible when AI is assumed?'));
39
+ console.log(colors.secondary(' • Is the agent the primary user?'));
40
+ console.log(colors.secondary(' • Am I building orchestration or implementation?'));
41
+ console.log(colors.secondary(' • What interface can I eliminate?'));
42
+ console.log(colors.secondary(' • Is distribution built into the architecture?'));
43
+ console.log();
44
+ }
45
+
46
+ export default architect;
@@ -0,0 +1,46 @@
1
+ import colors from '../../ui/colors.js';
2
+ import { principleBox, titledBox } from '../../ui/box.js';
3
+ import { getPrinciplesByPhase } from '../../content/principles.js';
4
+ import { header, phaseSymbols } from '../../ui/ascii-art.js';
5
+
6
+ export async function build() {
7
+ const principles = getPrinciplesByPhase('build');
8
+
9
+ console.log(header(`${phaseSymbols.build} BUILD — HOW TO DEVELOP`));
10
+ console.log();
11
+
12
+ const introText = `The build phase is about ${colors.cyan('committed execution')}.
13
+ Master your stack without attachment. Feed your agents rich context.
14
+ Small teams move faster. Depth and speed together.
15
+
16
+ Ask: Is my agent getting enough context?
17
+ Ask: Am I building with mastery or fumbling?
18
+ Ask: Can this team be smaller?`;
19
+
20
+ console.log(titledBox('PHASE FOCUS', introText, {
21
+ borderColor: '#FF00FF',
22
+ }));
23
+
24
+ console.log();
25
+ console.log(colors.dim(' Relevant principles for this phase:'));
26
+ console.log();
27
+
28
+ for (const p of principles) {
29
+ console.log(principleBox(
30
+ p.number,
31
+ p.title,
32
+ `${colors.quote(`"${p.principle}"`)}\n\n${p.summary}`
33
+ ));
34
+ console.log();
35
+ }
36
+
37
+ console.log(colors.dim(' Key questions:'));
38
+ console.log(colors.secondary(' • Am I committed to my stack (without being attached)?'));
39
+ console.log(colors.secondary(' • Does my agent have enough context?'));
40
+ console.log(colors.secondary(' • Can this team be smaller?'));
41
+ console.log(colors.secondary(' • Am I going deep enough before going fast?'));
42
+ console.log(colors.secondary(' • Is this practice shaping who I\'m becoming?'));
43
+ console.log();
44
+ }
45
+
46
+ export default build;
@@ -0,0 +1,44 @@
1
+ import colors from '../../ui/colors.js';
2
+ import { principleBox, titledBox } from '../../ui/box.js';
3
+ import { getPrinciplesByPhase } from '../../content/principles.js';
4
+ import { header, phaseSymbols } from '../../ui/ascii-art.js';
5
+
6
+ export async function ideate() {
7
+ const principles = getPrinciplesByPhase('ideate');
8
+
9
+ console.log(header(`${phaseSymbols.ideate} IDEATE — WHAT TO BUILD`));
10
+ console.log();
11
+
12
+ const introText = `The ideation phase is about ${colors.cyan('perceiving')} what to build.
13
+ Not analyzing trends or following patterns, but seeing what others cannot.
14
+
15
+ Ask: What do I believe that others don't?
16
+ Ask: What does this destroy?
17
+ Ask: What becomes possible when AI is assumed?`;
18
+
19
+ console.log(titledBox('PHASE FOCUS', introText, {
20
+ borderColor: '#FF00FF',
21
+ }));
22
+
23
+ console.log();
24
+ console.log(colors.dim(' Relevant principles for this phase:'));
25
+ console.log();
26
+
27
+ for (const p of principles) {
28
+ console.log(principleBox(
29
+ p.number,
30
+ p.title,
31
+ `${colors.quote(`"${p.principle}"`)}\n\n${p.summary}`
32
+ ));
33
+ console.log();
34
+ }
35
+
36
+ console.log(colors.dim(' Key questions:'));
37
+ console.log(colors.secondary(' • What would this destroy if it worked?'));
38
+ console.log(colors.secondary(' • What do I believe that would make others uncomfortable?'));
39
+ console.log(colors.secondary(' • What is the problem I\'m in love with?'));
40
+ console.log(colors.secondary(' • Where does digital intelligence meet physical reality?'));
41
+ console.log();
42
+ }
43
+
44
+ export default ideate;
@@ -0,0 +1,45 @@
1
+ import colors from '../../ui/colors.js';
2
+ import { principleBox, titledBox } from '../../ui/box.js';
3
+ import { getPrinciplesByPhase } from '../../content/principles.js';
4
+ import { header, phaseSymbols } from '../../ui/ascii-art.js';
5
+
6
+ export async function launch() {
7
+ const principles = getPrinciplesByPhase('launch');
8
+
9
+ console.log(header(`${phaseSymbols.launch} LAUNCH — GTM/MARKETING`));
10
+ console.log();
11
+
12
+ const introText = `The launch phase is about ${colors.cyan('distribution as architecture')}.
13
+ A product without distribution is a tree falling in an empty forest.
14
+ Build in public, think in private. Small teams, big leverage.
15
+
16
+ Ask: Is distribution built into the product?
17
+ Ask: What am I sharing vs. protecting?
18
+ Ask: Does every feature help the product spread?`;
19
+
20
+ console.log(titledBox('PHASE FOCUS', introText, {
21
+ borderColor: '#FF00FF',
22
+ }));
23
+
24
+ console.log();
25
+ console.log(colors.dim(' Relevant principles for this phase:'));
26
+ console.log();
27
+
28
+ for (const p of principles) {
29
+ console.log(principleBox(
30
+ p.number,
31
+ p.title,
32
+ `${colors.quote(`"${p.principle}"`)}\n\n${p.summary}`
33
+ ));
34
+ console.log();
35
+ }
36
+
37
+ console.log(colors.dim(' Key questions:'));
38
+ console.log(colors.secondary(' • Is distribution architected into the product?'));
39
+ console.log(colors.secondary(' • Does sharing this create more value?'));
40
+ console.log(colors.secondary(' • What\'s public (execution) vs private (strategy)?'));
41
+ console.log(colors.secondary(' • Can we launch with fewer people?'));
42
+ console.log();
43
+ }
44
+
45
+ export default launch;
@@ -0,0 +1,45 @@
1
+ import colors from '../../ui/colors.js';
2
+ import { principleBox, titledBox } from '../../ui/box.js';
3
+ import { getPrinciplesByPhase } from '../../content/principles.js';
4
+ import { header, phaseSymbols } from '../../ui/ascii-art.js';
5
+
6
+ export async function monetize() {
7
+ const principles = getPrinciplesByPhase('monetize');
8
+
9
+ console.log(header(`${phaseSymbols.monetize} MONETIZE — BUSINESS MODEL`));
10
+ console.log();
11
+
12
+ const introText = `The monetization phase is about ${colors.cyan('outcome-based value')}.
13
+ Functionality will be free; meaning will not. Charge for results.
14
+ The highest leverage is digital-to-physical. Optimize for decades.
15
+
16
+ Ask: Am I charging for outcomes or compute?
17
+ Ask: What meaning does this provide?
18
+ Ask: What time horizon am I optimizing for?`;
19
+
20
+ console.log(titledBox('PHASE FOCUS', introText, {
21
+ borderColor: '#FF00FF',
22
+ }));
23
+
24
+ console.log();
25
+ console.log(colors.dim(' Relevant principles for this phase:'));
26
+ console.log();
27
+
28
+ for (const p of principles) {
29
+ console.log(principleBox(
30
+ p.number,
31
+ p.title,
32
+ `${colors.quote(`"${p.principle}"`)}\n\n${p.summary}`
33
+ ));
34
+ console.log();
35
+ }
36
+
37
+ console.log(colors.dim(' Key questions:'));
38
+ console.log(colors.secondary(' • Am I charging for outcomes or compute?'));
39
+ console.log(colors.secondary(' • What meaning does this provide beyond utility?'));
40
+ console.log(colors.secondary(' • Where does this touch the physical world?'));
41
+ console.log(colors.secondary(' • Am I optimizing for quarters or decades?'));
42
+ console.log();
43
+ }
44
+
45
+ export default monetize;
@@ -0,0 +1,51 @@
1
+ import colors from '../../ui/colors.js';
2
+ import { principleBox, titledBox } from '../../ui/box.js';
3
+ import { getPrinciplesByPhase } from '../../content/principles.js';
4
+ import { header, phaseSymbols, symbol } from '../../ui/ascii-art.js';
5
+
6
+ export async function reflect() {
7
+ const principles = getPrinciplesByPhase('reflect');
8
+
9
+ console.log(header(`${phaseSymbols.reflect} REFLECT — DEEP CONTEMPLATION`));
10
+ console.log();
11
+
12
+ const introText = `The reflection phase is about ${colors.cyan('perception and becoming')}.
13
+ The future is not discovered; it is perceived. The work is the practice.
14
+ Conviction matters more than consensus. Optimize for decades.
15
+
16
+ This is not about analyzing what was done.
17
+ It is about perceiving what must be.`;
18
+
19
+ console.log(titledBox('PHASE FOCUS', introText, {
20
+ borderColor: '#FF00FF',
21
+ }));
22
+
23
+ console.log();
24
+ console.log(colors.dim(' Relevant principles for this phase:'));
25
+ console.log();
26
+
27
+ for (const p of principles) {
28
+ console.log(principleBox(
29
+ p.number,
30
+ p.title,
31
+ `${colors.quote(`"${p.principle}"`)}\n\n${p.summary}`
32
+ ));
33
+ console.log();
34
+ }
35
+
36
+ console.log(colors.secondary(symbol));
37
+ console.log();
38
+
39
+ console.log(colors.dim(' Contemplation prompts:'));
40
+ console.log(colors.secondary(' • What filter am I not seeing through?'));
41
+ console.log(colors.secondary(' • What do I believe that would make others uncomfortable?'));
42
+ console.log(colors.secondary(' • How is this work shaping who I\'m becoming?'));
43
+ console.log(colors.secondary(' • What future am I failing to perceive?'));
44
+ console.log(colors.secondary(' • What time horizon am I really optimizing for?'));
45
+ console.log();
46
+
47
+ console.log(colors.dim(' For deeper contemplation: ') + colors.accent('npx @pixelspace/mystyk --zen'));
48
+ console.log();
49
+ }
50
+
51
+ export default reflect;
@@ -0,0 +1,35 @@
1
+ import colors from '../ui/colors.js';
2
+ import { principleBox } from '../ui/box.js';
3
+ import { getRandomPrinciple } from '../content/principles.js';
4
+ import { getAxiomByPrinciple } from '../content/axioms.js';
5
+ import { divider } from '../ui/ascii-art.js';
6
+
7
+ export async function oracle() {
8
+ const principle = getRandomPrinciple();
9
+ const axiom = getAxiomByPrinciple(principle.number);
10
+
11
+ console.log();
12
+ console.log(colors.dim(' The oracle speaks...'));
13
+ console.log();
14
+
15
+ console.log(principleBox(
16
+ principle.number,
17
+ principle.title,
18
+ `${colors.quote(`"${principle.principle}"`)}\n\n${principle.summary}`
19
+ ));
20
+
21
+ if (axiom) {
22
+ console.log();
23
+ console.log(colors.dim(' In formal notation:'));
24
+ console.log(colors.cyan(` ${axiom.formula}`));
25
+ }
26
+
27
+ console.log();
28
+ console.log(colors.secondary(divider));
29
+ console.log();
30
+ console.log(colors.dim(' Consult again: ') + colors.accent('npx @pixelspace/mystyk --oracle'));
31
+ console.log(colors.dim(' Full principle: ') + colors.accent(`npx @pixelspace/mystyk --read`));
32
+ console.log();
33
+ }
34
+
35
+ export default oracle;