@juancr11/sibu 0.13.0 → 0.13.2

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juancr11/sibu",
3
- "version": "0.13.0",
3
+ "version": "0.13.2",
4
4
  "description": "CLI for setting up a local AI-augmented development workflow.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,5 +1,5 @@
1
1
  {
2
- "templateVersion": "96",
2
+ "templateVersion": "98",
3
3
  "templates": {
4
4
  "AGENTS.md": {
5
5
  "version": "29",
@@ -121,17 +121,17 @@
121
121
  ]
122
122
  },
123
123
  "skills/react/SKILL.md": {
124
- "version": "2",
124
+ "version": "3",
125
125
  "description": "Selectable React skill for component design, props, state ownership, and presentational boundaries.",
126
126
  "changes": [
127
- "Strengthens React component guidance around Single Responsibility Principle splits, stateless versus stateful boundaries, and one component per file by default."
127
+ "Adds broadly applicable React screen componentization guidance so route and feature entry files stay thin while meaningful UI regions move into focused nearby files."
128
128
  ]
129
129
  },
130
130
  "skills/scrum-master-planner/SKILL.md": {
131
- "version": "10",
131
+ "version": "11",
132
132
  "description": "Mandatory Scrum planner skill for creating pragmatic Epics and User Stories from approved feature and technical design docs.",
133
133
  "changes": [
134
- "Removes label creation and label assignment from Scrum planning GitHub issue export while keeping the mandatory GitHub export gate and native sub-issue requirements."
134
+ "Clarifies that User Stories should be deployable increments that can be merged safely on their own, even when gated or incomplete until the parent Epic is done."
135
135
  ]
136
136
  },
137
137
  "skills/ai-implementation-planner/SKILL.md": {
@@ -13,6 +13,8 @@ This skill covers React componentization, component responsibility, state owners
13
13
 
14
14
  - creating or editing React components
15
15
  - splitting large components
16
+ - constructing or refactoring page-level UI from smaller route-local components
17
+ - deciding when a page file should delegate sections, repeated items, panels, overlays, menus, states, and formatting helpers to focused files
16
18
  - deciding where state should live
17
19
  - separating presentational components from server-interacting or data-owning components
18
20
  - reviewing component responsibility and prop design
@@ -68,15 +70,61 @@ This skill covers React componentization, component responsibility, state owners
68
70
  - Each component should live in its own file by default; do not define multiple components in the same file just because they are currently small.
69
71
  - If a helper component is only temporary, promote it to its own file as soon as it represents a meaningful UI responsibility.
70
72
 
73
+ ### 9. Build screens as composition roots, not component dumping grounds
74
+ - Treat page-level components, route-level containers, and major feature components as composition roots: they should assemble focused child components, not define every section, repeated item, overlay, menu, state, helper, and interaction inline.
75
+ - A top-level screen component may own data loading, high-level layout, route states, and wiring, but should delegate meaningful UI regions to named components.
76
+ - If a UI region has its own state, interaction, repeated rendering, overlay, menu, empty/error/loading state, or domain formatting concern, strongly prefer extracting it to a focused nearby file.
77
+ - Keep route entry files especially thin: they should fetch or prepare data, handle route-level states, and compose the screen. Avoid placing substantial presentational or interactive subcomponents directly inside them.
78
+ - Route-local or feature-local components are good defaults for UI that belongs to one screen or feature. Shared components should be extracted only when reuse is real, not speculative.
79
+
80
+ ## File splitting triggers
81
+
82
+ When editing a React page, route container, or major component, extract a separate component or helper file when any of these are true:
83
+
84
+ - The file defines more than one meaningful UI responsibility, such as a container plus repeated item plus action surface plus state view.
85
+ - A nested component has a product/UI name a user, designer, or teammate would recognize.
86
+ - A UI region owns local state, submission or mutation behavior, pending/optimistic feedback, validation, confirmation, or recovery behavior.
87
+ - A component renders a repeated unit, such as a row, card, list item, tile, timeline entry, tab panel, or menu group.
88
+ - A component represents an empty state, error state, no-results state, loading state, permission state, or other named screen state.
89
+ - A helper formats domain-visible values, such as money, dates, percentages, names, quantities, labels, or statuses, and is used by more than one component.
90
+ - The parent component becomes hard to scan in one pass or requires scrolling through implementation details to understand the screen structure.
91
+
92
+ Prefer nearby files first, using names from the product or UI. For example:
93
+
94
+ ```txt
95
+ page.tsx
96
+ feature-shell.tsx
97
+ feature-summary.tsx
98
+ feature-list.tsx
99
+ feature-item.tsx
100
+ feature-actions.tsx
101
+ feature-state.tsx
102
+ feature-format.ts
103
+ feature-types.ts
104
+ ```
105
+
71
106
  ## Decision rule
72
107
 
73
108
  When unsure, prefer:
74
- 1. one clear responsibility per component
75
- 2. more focused components instead of fewer overloaded components
76
- 3. one component per file by default
77
- 4. stateless presentational components that render from props
78
- 5. stateful components only where local interaction state is genuinely owned
79
- 6. data/server interaction in obvious owner components
80
- 7. local state unless coordination requires lifting it
81
- 8. composition over flag-heavy component APIs
82
- 9. no duplicated derived state
109
+ 1. route entry files as thin composition roots
110
+ 2. route-level or feature-level containers that own only the interaction state they coordinate
111
+ 3. one clear responsibility per component
112
+ 4. more focused components instead of fewer overloaded components
113
+ 5. one meaningful component per file by default
114
+ 6. nearby component files before shared abstractions
115
+ 7. stateless presentational components that render from props
116
+ 8. stateful components only where local interaction state is genuinely owned
117
+ 9. data/server interaction in obvious owner components
118
+ 10. local state unless coordination requires lifting it
119
+ 11. composition over flag-heavy component APIs
120
+ 12. no duplicated derived state
121
+
122
+ ## Componentization self-review
123
+
124
+ Before finishing a React change, ask:
125
+
126
+ - Can I understand the screen structure from the top-level file without reading repeated item, action surface, overlay, state, or formatting internals?
127
+ - Are meaningful UI regions and repeated units in named components?
128
+ - Does each file have one obvious reason to change?
129
+ - Are server/client boundaries still as small as practical?
130
+ - Did I avoid creating shared abstractions before there is real reuse?
@@ -164,7 +164,9 @@ Adapt headings only when it improves clarity. Keep the Epic brief short.
164
164
 
165
165
  Within each Epic, decide the order of execution before writing User Story files. Use the lowest practical sequence number for the first story that should be implemented, then increment only when later stories depend on earlier work. If two or more stories can be developed at the same time, give them the same order number.
166
166
 
167
- Each User Story should be independently understandable and reviewable.
167
+ Each User Story should be independently understandable, reviewable, and deployable.
168
+
169
+ A User Story represents a shippable increment that can move from backlog to Done and be merged safely on its own. It may be hidden behind feature flags, internal-only paths, disabled defaults, or incomplete parent-Epic workflows, but it must leave the product in a valid deployable state without requiring unmerged sibling Stories.
168
170
 
169
171
  Use this structure:
170
172
 
@@ -206,6 +208,7 @@ Before finishing, verify:
206
208
  - every Story belongs to exactly one Epic
207
209
  - every Story filename includes a two-digit execution order prefix
208
210
  - Stories with the same order number are actually parallelizable
211
+ - every Story can be merged and deployed safely on its own, even if its user-facing value is gated or incomplete until the Epic is done
209
212
  - Story count is pragmatic, not inflated
210
213
  - no Story adds scope that is absent from the feature brief or technical design
211
214
  - acceptance criteria are testable enough for a reviewer