ystack 0.1.0 → 0.2.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/CHANGELOG.md +36 -1
- package/LINTING.md +36 -71
- package/PHILOSOPHY.md +11 -11
- package/README.md +103 -43
- package/RUNTIMES.md +10 -10
- package/bin/cli.js +84 -62
- package/hooks/docs-match-progress.js +100 -0
- package/hooks/no-undocumented-check.js +91 -0
- package/hooks/progress-before-ship.js +74 -0
- package/hooks/session-start.sh +11 -6
- package/hooks/workflow-nudge.js +2 -2
- package/package.json +3 -5
- package/skills/address-review/SKILL.md +1 -1
- package/skills/build/SKILL.md +3 -3
- package/skills/docs/SKILL.md +4 -2
- package/skills/go/SKILL.md +11 -9
- package/skills/import/SKILL.md +182 -81
- package/skills/pr/SKILL.md +15 -10
- package/skills/quick/SKILL.md +110 -0
- package/skills/scaffold/SKILL.md +77 -65
- package/PLAN.md +0 -515
package/skills/scaffold/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: scaffold
|
|
|
3
3
|
description: >
|
|
4
4
|
Scaffold documentation structure from a plan. Two modes: (1) full-project — takes a
|
|
5
5
|
markdown plan describing all modules and their relationships, produces doc stubs, module
|
|
6
|
-
registry, Mermaid architecture diagrams, and
|
|
6
|
+
registry, Mermaid architecture diagrams, and progress files. (2) single-module — adds one
|
|
7
7
|
new module to an existing project. Use this skill when the user says 'scaffold',
|
|
8
8
|
'/scaffold', 'scaffold docs', 'scaffold project', 'set up the docs', 'add a module',
|
|
9
9
|
'new module', 'scaffold module', 'turn this plan into docs', 'bootstrap project',
|
|
@@ -23,7 +23,7 @@ Two modes:
|
|
|
23
23
|
|
|
24
24
|
## Mode Detection
|
|
25
25
|
|
|
26
|
-
1. If
|
|
26
|
+
1. If `.ystack/config.json` exists AND the user provides a module name or a module-level plan (not a full project plan):
|
|
27
27
|
→ **Single-module mode** (jump to [Single-Module Flow](#single-module-flow))
|
|
28
28
|
|
|
29
29
|
2. Otherwise:
|
|
@@ -175,7 +175,7 @@ Create the documentation structure. Each module gets an overview page with stubs
|
|
|
175
175
|
|
|
176
176
|
### Docs directory structure
|
|
177
177
|
|
|
178
|
-
Read
|
|
178
|
+
Read `.ystack/config.json` `docs.framework` to determine the structure. If no config exists, detect from the project.
|
|
179
179
|
|
|
180
180
|
**Nextra:**
|
|
181
181
|
```
|
|
@@ -321,7 +321,7 @@ Sub-module pages are NOT created yet — just the overview with a stub table. Pa
|
|
|
321
321
|
|
|
322
322
|
## Phase 4: Generate Module Registry
|
|
323
323
|
|
|
324
|
-
Create
|
|
324
|
+
Create `.ystack/config.json`:
|
|
325
325
|
|
|
326
326
|
```json
|
|
327
327
|
{
|
|
@@ -333,59 +333,69 @@ Create `ystack.config.json`:
|
|
|
333
333
|
"modules": {
|
|
334
334
|
"<module-a-slug>": {
|
|
335
335
|
"doc": "<module-a-slug>",
|
|
336
|
-
"scope": ["<apps-or-packages>/<module-a-slug>/**"]
|
|
337
|
-
"status": "planned"
|
|
336
|
+
"scope": ["<apps-or-packages>/<module-a-slug>/**"]
|
|
338
337
|
},
|
|
339
338
|
"<module-b-slug>": {
|
|
340
339
|
"doc": "<module-b-slug>",
|
|
341
|
-
"scope": ["<apps-or-packages>/<module-b-slug>/**"]
|
|
342
|
-
"status": "planned"
|
|
340
|
+
"scope": ["<apps-or-packages>/<module-b-slug>/**"]
|
|
343
341
|
}
|
|
344
342
|
}
|
|
345
343
|
}
|
|
346
344
|
```
|
|
347
345
|
|
|
348
346
|
Notes:
|
|
349
|
-
- `status` starts as `"planned"` — changes to `"active"` when first feature is built
|
|
350
347
|
- `scope` uses glob patterns — a module can span multiple packages or be a subdirectory within one
|
|
351
|
-
- Sub-modules are tracked by docs (sub-pages). Features are tracked
|
|
352
|
-
- `epic` field is added in Phase 5 after Beads creates the epics (omitted if Beads not available)
|
|
348
|
+
- Sub-modules are tracked by docs (sub-pages). Features are tracked in progress files (`.ystack/progress/<module>.md`). The registry only tracks modules.
|
|
353
349
|
- The `doc` path is relative to `docs.root`
|
|
354
350
|
|
|
355
|
-
## Phase 5: Create
|
|
351
|
+
## Phase 5: Create Progress Files
|
|
356
352
|
|
|
357
|
-
|
|
353
|
+
Create a progress file per module in `.ystack/progress/`:
|
|
358
354
|
|
|
359
|
-
|
|
360
|
-
```bash
|
|
361
|
-
bd create "<Module Name>" -t epic --metadata '{"doc": "<module-slug>", "ystack": true}'
|
|
362
|
-
```
|
|
355
|
+
For each module, write `.ystack/progress/<module-slug>.md`:
|
|
363
356
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
bd create "<Feature description>" -t feature --parent <epic-id>
|
|
367
|
-
```
|
|
357
|
+
```markdown
|
|
358
|
+
# <Module Name>
|
|
368
359
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
360
|
+
## Features
|
|
361
|
+
- [ ] <Feature 1> → <module-slug>#<feature-anchor>
|
|
362
|
+
- [ ] <Feature 2> → <module-slug>#<feature-anchor>
|
|
363
|
+
- [ ] <Feature 3> → <module-slug>#<feature-anchor>
|
|
364
|
+
depends-on: <Feature 1>
|
|
373
365
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
366
|
+
## Decisions
|
|
367
|
+
| Date | Feature | Decision |
|
|
368
|
+
|------|---------|----------|
|
|
369
|
+
|
|
370
|
+
## Notes
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
For inter-module dependencies, use `depends-on:` annotations on the checklist items.
|
|
374
|
+
|
|
375
|
+
Create `.ystack/progress/_overview.md`:
|
|
376
|
+
|
|
377
|
+
```markdown
|
|
378
|
+
# Project Progress
|
|
385
379
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
380
|
+
## Module Status
|
|
381
|
+
|
|
382
|
+
| Module | Done | Total | Status |
|
|
383
|
+
|--------|------|-------|--------|
|
|
384
|
+
| auth | 0 | 3 | not started |
|
|
385
|
+
| payments | 0 | 2 | not started |
|
|
386
|
+
| dashboard | 0 | 4 | not started |
|
|
387
|
+
|
|
388
|
+
## Dependencies
|
|
389
|
+
|
|
390
|
+
auth/sessions → auth/oauth
|
|
391
|
+
payments/stripe → payments/wallet → dashboard/usage
|
|
392
|
+
|
|
393
|
+
## Ready Front
|
|
394
|
+
|
|
395
|
+
- auth/email-login (no dependencies)
|
|
396
|
+
- auth/sessions (no dependencies)
|
|
397
|
+
- payments/stripe (no dependencies)
|
|
398
|
+
```
|
|
389
399
|
|
|
390
400
|
## Phase 6: Present the Result
|
|
391
401
|
|
|
@@ -406,14 +416,14 @@ Show the user what was generated:
|
|
|
406
416
|
└── api/index.mdx (3 feature stubs)
|
|
407
417
|
|
|
408
418
|
### Module Registry
|
|
409
|
-
ystack
|
|
419
|
+
.ystack/config.json — 6 modules registered
|
|
410
420
|
|
|
411
|
-
###
|
|
412
|
-
6
|
|
421
|
+
### Progress
|
|
422
|
+
6 progress files created, 15 features tracked
|
|
413
423
|
Ready front: auth/email-login, db/schema-setup (no blockers)
|
|
414
424
|
|
|
415
425
|
### Next Steps
|
|
416
|
-
1. Pick a module to start with —
|
|
426
|
+
1. Pick a module to start with — check `.ystack/progress/_overview.md` for the ready front
|
|
417
427
|
2. `/build <feature>` to plan the first feature
|
|
418
428
|
3. Doc pages will fill in as features are built via `/docs`
|
|
419
429
|
```
|
|
@@ -422,9 +432,9 @@ Show the user what was generated:
|
|
|
422
432
|
|
|
423
433
|
## Single-Module Flow
|
|
424
434
|
|
|
425
|
-
Use this flow when adding a new module to an existing project that already has
|
|
435
|
+
Use this flow when adding a new module to an existing project that already has `.ystack/config.json` and a docs site.
|
|
426
436
|
|
|
427
|
-
**Trigger:** `/scaffold <module-name>` or `/scaffold` with a module-level plan (not a full project plan) in a project with an existing
|
|
437
|
+
**Trigger:** `/scaffold <module-name>` or `/scaffold` with a module-level plan (not a full project plan) in a project with an existing `.ystack/config.json`.
|
|
428
438
|
|
|
429
439
|
### Step 1: Get the Module Plan
|
|
430
440
|
|
|
@@ -447,9 +457,9 @@ Extract from the module plan:
|
|
|
447
457
|
- **Name** and **slug** (e.g., "Notifications" → `notifications`)
|
|
448
458
|
- **Type** — `app` or `package`
|
|
449
459
|
- **Features** — bullet points
|
|
450
|
-
- **Connections** — which existing modules it connects to (verify these exist in
|
|
460
|
+
- **Connections** — which existing modules it connects to (verify these exist in `.ystack/config.json`)
|
|
451
461
|
|
|
452
|
-
Read the existing
|
|
462
|
+
Read the existing `.ystack/config.json` to understand what modules already exist.
|
|
453
463
|
|
|
454
464
|
Present:
|
|
455
465
|
```
|
|
@@ -483,7 +493,7 @@ Proceed?
|
|
|
483
493
|
|
|
484
494
|
### Step 4: Update Module Registry
|
|
485
495
|
|
|
486
|
-
Read and update
|
|
496
|
+
Read and update `.ystack/config.json`:
|
|
487
497
|
|
|
488
498
|
```json
|
|
489
499
|
{
|
|
@@ -491,30 +501,32 @@ Read and update `ystack.config.json`:
|
|
|
491
501
|
// ... existing modules ...
|
|
492
502
|
"<module-slug>": {
|
|
493
503
|
"doc": "<module-slug>",
|
|
494
|
-
"scope": ["<apps-or-packages>/<module-slug>/**"]
|
|
495
|
-
"status": "planned"
|
|
504
|
+
"scope": ["<apps-or-packages>/<module-slug>/**"]
|
|
496
505
|
}
|
|
497
506
|
}
|
|
498
507
|
}
|
|
499
508
|
```
|
|
500
509
|
|
|
501
|
-
### Step 5: Create
|
|
510
|
+
### Step 5: Create Progress File
|
|
502
511
|
|
|
503
|
-
|
|
512
|
+
Write `.ystack/progress/<module-slug>.md`:
|
|
504
513
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
bd create "<Module Name>" -t epic --metadata '{"doc": "<module-slug>", "ystack": true}'
|
|
508
|
-
```
|
|
514
|
+
```markdown
|
|
515
|
+
# <Module Name>
|
|
509
516
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
517
|
+
## Features
|
|
518
|
+
- [ ] <Feature 1> → <module-slug>#<feature-anchor>
|
|
519
|
+
- [ ] <Feature 2> → <module-slug>#<feature-anchor>
|
|
520
|
+
|
|
521
|
+
## Decisions
|
|
522
|
+
| Date | Feature | Decision |
|
|
523
|
+
|------|---------|----------|
|
|
514
524
|
|
|
515
|
-
|
|
525
|
+
## Notes
|
|
526
|
+
```
|
|
516
527
|
|
|
517
|
-
|
|
528
|
+
Add dependencies to existing module features where connections exist.
|
|
529
|
+
Update `.ystack/progress/_overview.md` to include the new module.
|
|
518
530
|
|
|
519
531
|
### Step 6: Present Summary
|
|
520
532
|
|
|
@@ -525,10 +537,10 @@ If Beads (`bd`) is available:
|
|
|
525
537
|
<docs-root>/<module-slug>/index.mdx — overview with 3 feature stubs
|
|
526
538
|
|
|
527
539
|
### Registry
|
|
528
|
-
ystack
|
|
540
|
+
.ystack/config.json — module added
|
|
529
541
|
|
|
530
|
-
###
|
|
531
|
-
|
|
542
|
+
### Progress
|
|
543
|
+
progress file created, 3 features tracked
|
|
532
544
|
|
|
533
545
|
### Architecture Diagram
|
|
534
546
|
Updated — <module-slug> connected to auth, payments
|