@withmata/blueprints 0.5.0 → 3.0.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/.claude/skills/audit/SKILL.md +6 -6
- package/.claude/skills/blueprint-catalog/SKILL.md +4 -0
- package/.claude/skills/design-system/SKILL.md +11 -5
- package/.claude/skills/reflect/SKILL.md +119 -0
- package/.claude/skills/scaffold-env/SKILL.md +10 -13
- package/.claude/skills/scaffold-foundation/SKILL.md +5 -6
- package/.claude/skills/scaffold-infisical/SKILL.md +173 -0
- package/ENGINEERING.md +1 -1
- package/blueprints/features/env-t3/BLUEPRINT.md +26 -33
- package/blueprints/features/secrets-infisical/BLUEPRINT.md +295 -0
- package/blueprints/features/secrets-infisical/files/docs/INFISICAL.md +119 -0
- package/blueprints/features/secrets-infisical/files/scripts/infisical-map.sh +115 -0
- package/blueprints/features/secrets-infisical/files/scripts/infisical-sync.sh +89 -0
- package/blueprints/thinking/thinking-partner/BLUEPRINT.md +333 -0
- package/blueprints/thinking/thinking-partner/templates/_patterns.md +61 -0
- package/blueprints/thinking/thinking-partner/templates/reflection-template.md +131 -0
- package/dist/index.js +11 -2
- package/package.json +1 -1
- package/blueprints/features/env-t3/files/nextjs/.env.example +0 -17
- package/blueprints/features/env-t3/files/server/.env.example +0 -14
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Reflection: [Topic in the user's own words]
|
|
2
|
+
|
|
3
|
+
**Date:** [YYYY-MM-DD]
|
|
4
|
+
**Session length:** [approximate, e.g. "~90 min"]
|
|
5
|
+
**Frameworks applied:** [Named list, e.g. "5 Whys, Steelmanning, Letter from Future Self"]
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Where I Started
|
|
10
|
+
|
|
11
|
+
[The original framing, in the user's own words. What they said the question was when the session opened. What they thought the goal was. What they thought they wanted to figure out.]
|
|
12
|
+
|
|
13
|
+
> "[Direct quote from how the user opened the session, if it was vivid]"
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## What the Question Actually Was
|
|
18
|
+
|
|
19
|
+
[The real question, as it surfaced through Phase 1. How it differs from where they started. What shifted in the framing.]
|
|
20
|
+
|
|
21
|
+
[Be honest about whether the surface question was already pretty close, or whether it was masking something else entirely. Don't manufacture a dramatic shift if there wasn't one.]
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## The Facts We Worked From
|
|
26
|
+
|
|
27
|
+
[Concrete events, behaviors, numbers, conversations — the things we treated as ground truth. Separate this from interpretations. This is the "what is actually happening" layer.]
|
|
28
|
+
|
|
29
|
+
- [Fact 1]
|
|
30
|
+
- [Fact 2]
|
|
31
|
+
- [Fact 3]
|
|
32
|
+
|
|
33
|
+
### What we checked
|
|
34
|
+
|
|
35
|
+
[Anything that was researched during the session, and what we found. Be specific — link sources where applicable. Note where evidence supported the user's framing and where it pushed back.]
|
|
36
|
+
|
|
37
|
+
- **Claim:** [What was claimed] -> **Found:** [What the evidence actually said]
|
|
38
|
+
- **Claim:** [...] -> **Found:** [...]
|
|
39
|
+
|
|
40
|
+
### Assumptions we surfaced
|
|
41
|
+
|
|
42
|
+
[Things the user was treating as fact that turned out to be assumption. Things the user hadn't realized they believed. Inherited framings.]
|
|
43
|
+
|
|
44
|
+
- [Assumption 1 — and what we did with it]
|
|
45
|
+
- [Assumption 2]
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## The Walkthrough
|
|
50
|
+
|
|
51
|
+
[The narrative middle. This is the heart of the document. Tell the story of how the thinking moved.]
|
|
52
|
+
|
|
53
|
+
### [Framework 1, e.g. "5 Whys on the goal"]
|
|
54
|
+
|
|
55
|
+
[What this framework is and why it fit. What it surfaced. The actual chain or output. What changed because of it.]
|
|
56
|
+
|
|
57
|
+
### [Framework 2, e.g. "Steelmanning the path I was rejecting"]
|
|
58
|
+
|
|
59
|
+
[Same structure. What was the strongest case for the rejected path? What did it expose?]
|
|
60
|
+
|
|
61
|
+
### [Framework 3, if used]
|
|
62
|
+
|
|
63
|
+
[...]
|
|
64
|
+
|
|
65
|
+
### Moments that shifted things
|
|
66
|
+
|
|
67
|
+
[The "huh" moments. When something clicked, when a framing fell apart, when an emotion surfaced that changed the analysis. Quote yourself if a specific phrase from the user captured it.]
|
|
68
|
+
|
|
69
|
+
> "[A direct user quote from the session that captures a turning point]"
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Where I Landed
|
|
74
|
+
|
|
75
|
+
### The direction
|
|
76
|
+
|
|
77
|
+
[One paragraph, in the user's voice, describing the chosen direction. Not a bullet list — a sentence or two that the user can read in a month and understand what they decided.]
|
|
78
|
+
|
|
79
|
+
### The why, in one sentence
|
|
80
|
+
|
|
81
|
+
> [The user's articulation, edited for clarity but kept in their voice.]
|
|
82
|
+
|
|
83
|
+
### What I'm choosing against
|
|
84
|
+
|
|
85
|
+
[The path not taken, and the strongest version of why someone might take it anyway. This is here so future-self knows it was considered, not ignored.]
|
|
86
|
+
|
|
87
|
+
[If/when this comes up again, here's what I'd want to remember about why I didn't go this way: ...]
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## What I'm Sitting With
|
|
92
|
+
|
|
93
|
+
[Things that aren't fully resolved. Honest uncertainty. Tradeoffs the user accepted rather than solved. This section matters — pretending everything is settled is a failure mode.]
|
|
94
|
+
|
|
95
|
+
- [Uncertainty 1]
|
|
96
|
+
- [Uncertainty 2]
|
|
97
|
+
- [Tradeoff I'm accepting]
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## What I'll Revisit, and When
|
|
102
|
+
|
|
103
|
+
[Concrete checkpoints. Not vague "I'll see how it goes" — actual triggers or dates.]
|
|
104
|
+
|
|
105
|
+
| What | When | What would change my mind |
|
|
106
|
+
|------|------|---------------------------|
|
|
107
|
+
| [Decision/assumption to revisit] | [Date or trigger] | [What evidence would push me to reconsider] |
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## The Recommendation, As Input
|
|
112
|
+
|
|
113
|
+
[If the agent made a recommendation during the session, capture it here verbatim — even if the user chose differently. The point is to have the alternative viewpoint preserved, not to override the user's choice.]
|
|
114
|
+
|
|
115
|
+
> Agent recommendation: [What was recommended and the reasoning, in 2-3 sentences]
|
|
116
|
+
>
|
|
117
|
+
> What I'm doing with it: [Took it / partially / set it aside because of X]
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Frameworks I Want to Remember
|
|
122
|
+
|
|
123
|
+
[A short list of the techniques used in this session, with one-sentence reminders of when they apply. The point: next time the user is thinking through something on their own, they have these tools named.]
|
|
124
|
+
|
|
125
|
+
- **[Framework 1]** — [When to reach for it, in one sentence]
|
|
126
|
+
- **[Framework 2]** — [When to reach for it]
|
|
127
|
+
- **[Framework 3]** — [When to reach for it]
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
*Generated through a `/reflect` session. The walkthrough above is the journey, not a verdict. If conditions change or the situation looks different in a few weeks, run another session.*
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import pc4 from "picocolors";
|
|
|
6
6
|
|
|
7
7
|
// src/constants.ts
|
|
8
8
|
var API_URL = process.env["WITHMATA_API_URL"] || "https://blueprints.withmata.dev";
|
|
9
|
-
var VERSION = "0.
|
|
9
|
+
var VERSION = "3.0.0";
|
|
10
10
|
|
|
11
11
|
// src/lib/install-state.ts
|
|
12
12
|
import { existsSync, readdirSync, lstatSync, readlinkSync } from "fs";
|
|
@@ -269,7 +269,7 @@ function isBlueprintsRepo(dir) {
|
|
|
269
269
|
function discoverBlueprints(blueprintsDir) {
|
|
270
270
|
const ids = [];
|
|
271
271
|
if (!existsSync3(blueprintsDir)) return ids;
|
|
272
|
-
const tiers = ["discovery", "foundation", "features"];
|
|
272
|
+
const tiers = ["discovery", "foundation", "features", "thinking"];
|
|
273
273
|
for (const tier of tiers) {
|
|
274
274
|
const tierDir = join3(blueprintsDir, tier);
|
|
275
275
|
if (!existsSync3(tierDir)) continue;
|
|
@@ -483,6 +483,15 @@ var SKILL_GROUPS = [
|
|
|
483
483
|
description: "Check project health and find available upgrades"
|
|
484
484
|
}
|
|
485
485
|
]
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
title: "Think",
|
|
489
|
+
skills: [
|
|
490
|
+
{
|
|
491
|
+
command: "/reflect",
|
|
492
|
+
description: "Run a structured thinking-partner session on any personal topic"
|
|
493
|
+
}
|
|
494
|
+
]
|
|
486
495
|
}
|
|
487
496
|
];
|
|
488
497
|
function showSummary({
|
package/package.json
CHANGED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# {{APP_NAME}} — Environment Variables
|
|
3
|
-
# =============================================================================
|
|
4
|
-
# Copy this file to .env.local and fill in the values.
|
|
5
|
-
# Feature blueprints will add their own variables — check their BLUEPRINT.md.
|
|
6
|
-
|
|
7
|
-
# -----------------------------------------------------------------------------
|
|
8
|
-
# App
|
|
9
|
-
# -----------------------------------------------------------------------------
|
|
10
|
-
|
|
11
|
-
# Frontend URL (used for redirects, CORS, and metadata)
|
|
12
|
-
# Local: http://localhost:3000 | Production: https://yourdomain.com
|
|
13
|
-
NEXT_PUBLIC_FRONTEND_URL=http://localhost:3000
|
|
14
|
-
|
|
15
|
-
# CONFIGURE: Feature blueprints add variables here:
|
|
16
|
-
# - /scaffold-auth adds: BETTER_AUTH_URL, BETTER_AUTH_SECRET, GOOGLE_CLIENT_ID, etc.
|
|
17
|
-
# - /scaffold-db adds: DATABASE_URL (in packages/db/.env for monorepos)
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# {{APP_NAME}} Server — Environment Variables
|
|
3
|
-
# =============================================================================
|
|
4
|
-
# Copy this file to .env.local and fill in the values.
|
|
5
|
-
|
|
6
|
-
# -----------------------------------------------------------------------------
|
|
7
|
-
# Server Configuration
|
|
8
|
-
# -----------------------------------------------------------------------------
|
|
9
|
-
|
|
10
|
-
# Port the server listens on
|
|
11
|
-
# Local: 4000 | Production: Set by hosting platform
|
|
12
|
-
PORT=4000
|
|
13
|
-
|
|
14
|
-
# CONFIGURE: Add server-specific variables below
|