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.
@@ -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 Beads epics. (2) single-module — adds one
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 `ystack.config.json` exists AND the user provides a module name or a module-level plan (not a full project plan):
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 `ystack.config.json` `docs.framework` to determine the structure. If no config exists, detect from the project.
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 `ystack.config.json`:
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 by Beads (child beads). The registry only tracks modules.
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 Beads Epics
351
+ ## Phase 5: Create Progress Files
356
352
 
357
- If Beads (`bd`) is available:
353
+ Create a progress file per module in `.ystack/progress/`:
358
354
 
359
- 1. Create an epic per module:
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
- 2. Create feature beads as children:
365
- ```bash
366
- bd create "<Feature description>" -t feature --parent <epic-id>
367
- ```
357
+ ```markdown
358
+ # <Module Name>
368
359
 
369
- 3. Add inter-module dependencies where features cross boundaries:
370
- ```bash
371
- bd dep add <feature-id> blocks:<dependent-feature-id>
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
- 4. Update `ystack.config.json` with the epic IDs:
375
- ```json
376
- {
377
- "modules": {
378
- "auth": {
379
- "epic": "bd-a1b2",
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
- If Beads is not available, skip this phase and note:
387
- > Beads not detected. Module registry created without epic tracking.
388
- > Run `bd init` and re-run `/scaffold` to add Beads integration.
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.config.json — 6 modules registered
419
+ .ystack/config.json — 6 modules registered
410
420
 
411
- ### Beads
412
- 6 epics, 15 feature beads created
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 — run `bd ready` to see what's unblocked
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 `ystack.config.json` and a docs site.
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 `ystack.config.json`.
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 `ystack.config.json`)
460
+ - **Connections** — which existing modules it connects to (verify these exist in `.ystack/config.json`)
451
461
 
452
- Read the existing `ystack.config.json` to understand what modules already exist.
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 `ystack.config.json`:
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 Beads Epic
510
+ ### Step 5: Create Progress File
502
511
 
503
- If Beads (`bd`) is available:
512
+ Write `.ystack/progress/<module-slug>.md`:
504
513
 
505
- 1. Create the module epic:
506
- ```bash
507
- bd create "<Module Name>" -t epic --metadata '{"doc": "<module-slug>", "ystack": true}'
508
- ```
514
+ ```markdown
515
+ # <Module Name>
509
516
 
510
- 2. Create feature beads as children:
511
- ```bash
512
- bd create "<Feature description>" -t feature --parent <epic-id>
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
- 3. Add dependencies to existing module beads where connections exist.
525
+ ## Notes
526
+ ```
516
527
 
517
- 4. Update `ystack.config.json` with the epic ID.
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.config.json — module added (status: planned)
540
+ .ystack/config.json — module added
529
541
 
530
- ### Beads
531
- 1 epic, 3 feature beads created
542
+ ### Progress
543
+ progress file created, 3 features tracked
532
544
 
533
545
  ### Architecture Diagram
534
546
  Updated — <module-slug> connected to auth, payments