@juancr11/sibu 0.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.
Files changed (53) hide show
  1. package/README.md +198 -0
  2. package/bin/entrypoints/cli/command.js +1 -0
  3. package/bin/entrypoints/cli/create-program.js +33 -0
  4. package/bin/entrypoints/cli/execute-command.js +28 -0
  5. package/bin/entrypoints/cli/main.js +5 -0
  6. package/bin/features/doctor-project/command.js +1 -0
  7. package/bin/features/doctor-project/handler.js +194 -0
  8. package/bin/features/init-project/command.js +1 -0
  9. package/bin/features/init-project/handler.js +63 -0
  10. package/bin/features/list-skills/command.js +1 -0
  11. package/bin/features/list-skills/handler.js +55 -0
  12. package/bin/features/stop-managing-file/command.js +1 -0
  13. package/bin/features/stop-managing-file/handler.js +213 -0
  14. package/bin/features/sync-project/action-prompt.js +65 -0
  15. package/bin/features/sync-project/apply-action.js +81 -0
  16. package/bin/features/sync-project/command.js +1 -0
  17. package/bin/features/sync-project/handler.js +77 -0
  18. package/bin/features/sync-project/log-preview.js +62 -0
  19. package/bin/features/sync-project/preview.js +1 -0
  20. package/bin/features/use-skill/command.js +1 -0
  21. package/bin/features/use-skill/handler.js +197 -0
  22. package/bin/shared/catalog.js +199 -0
  23. package/bin/shared/hash.js +11 -0
  24. package/bin/shared/npm-version.js +178 -0
  25. package/bin/shared/object.js +3 -0
  26. package/bin/shared/paths.js +41 -0
  27. package/bin/shared/prompts.js +205 -0
  28. package/bin/shared/state.js +76 -0
  29. package/bin/shared/sync-preview.js +166 -0
  30. package/bin/shared/templates.js +60 -0
  31. package/bin/shared/types.js +1 -0
  32. package/bin/shared/workflow-mutation-readiness.js +30 -0
  33. package/bin/shared/workflow-targets.js +119 -0
  34. package/bin/sibu.js +6 -0
  35. package/package.json +68 -0
  36. package/templates/.codex/config.toml +1 -0
  37. package/templates/AGENTS.md +60 -0
  38. package/templates/CLAUDE.md +5 -0
  39. package/templates/GEMINI.md +5 -0
  40. package/templates/manifest.json +129 -0
  41. package/templates/skills/ai-implementation-plan-executor/SKILL.md +138 -0
  42. package/templates/skills/ai-implementation-planner/SKILL.md +213 -0
  43. package/templates/skills/architecture/command-pattern/SKILL.md +77 -0
  44. package/templates/skills/architecture/ddd-hexagonal/SKILL.md +212 -0
  45. package/templates/skills/clean-code/SKILL.md +109 -0
  46. package/templates/skills/feature-brief-writer/SKILL.md +219 -0
  47. package/templates/skills/golang/SKILL.md +82 -0
  48. package/templates/skills/nextjs/SKILL.md +94 -0
  49. package/templates/skills/product-vision-writer/SKILL.md +128 -0
  50. package/templates/skills/react/SKILL.md +75 -0
  51. package/templates/skills/scrum-master-planner/SKILL.md +191 -0
  52. package/templates/skills/technical-design-writer/SKILL.md +109 -0
  53. package/templates/skills/typescript/SKILL.md +111 -0
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: nextjs
3
+ description: Use this skill when working on Next.js App Router files or framework-specific Next.js behavior.
4
+ ---
5
+
6
+ # nextjs
7
+
8
+ Use this skill when working on Next.js App Router files or framework-specific Next.js behavior.
9
+
10
+ This skill covers Next.js conventions, boundaries, and rendering decisions. It does not cover React component design or UX strategy.
11
+
12
+ ## Use this skill for
13
+
14
+ - `src/app/**` pages, layouts, route handlers, loading, error, and not-found files
15
+ - Server Component vs Client Component decisions
16
+ - Next.js data fetching and rendering placement
17
+ - route handler conventions
18
+ - metadata APIs
19
+ - App Router file conventions
20
+ - framework boundary decisions in Next.js files
21
+
22
+ ## Core principles
23
+
24
+ ### 1. Use App Router conventions directly
25
+ - Put route UI in `page.tsx`.
26
+ - Put shared route shell UI in `layout.tsx`.
27
+ - Put custom request handlers in `route.ts`.
28
+ - Use `loading.tsx`, `error.tsx`, and `not-found.tsx` for route segment states when they improve the user experience.
29
+ - Keep special files focused on their framework role.
30
+
31
+ ### 2. Default to Server Components
32
+ - Pages and layouts are Server Components by default.
33
+ - Keep them as Server Components unless interactivity or browser-only APIs require a Client Component.
34
+ - Fetch initial and SEO-critical data on the server when possible.
35
+ - Pass only serializable props from Server Components to Client Components.
36
+
37
+ ### 3. Use Client Components only when needed
38
+ Add `"use client"` only for code that needs client-side capabilities, such as:
39
+ - state and event handlers
40
+ - effects or lifecycle behavior
41
+ - browser-only APIs like `window`, `localStorage`, or geolocation
42
+ - client-only third-party components
43
+
44
+ Prefer isolating the smallest interactive subtree into a Client Component rather than turning a whole page or layout into a Client Component.
45
+
46
+ ### 4. Keep `src/app/**` thin
47
+ - Treat `src/app/**` as a framework boundary.
48
+ - Pages and route handlers should call application/domain code instead of containing business logic.
49
+ - Keep request parsing, response formatting, redirects, and framework concerns in `src/app/**`.
50
+ - Move reusable business behavior out of App Router files.
51
+
52
+ ### 5. Route handlers are framework adapters
53
+ - Define route handlers in `route.ts` files inside `app`.
54
+ - Use the Web `Request` and `Response` APIs.
55
+ - Keep handlers focused on HTTP concerns: parse input, call application behavior, and return a stable response.
56
+ - Do not put backend business rules directly in route handlers.
57
+
58
+ ### 6. Use Next.js error and empty-state conventions
59
+ - Use `notFound()` for route resources that genuinely do not exist.
60
+ - Add `not-found.tsx` when a route segment needs a custom 404 UI.
61
+ - Add `loading.tsx` when a route segment benefits from an instant loading state.
62
+ - Add `error.tsx` for unexpected runtime errors in a route segment.
63
+ - Remember that `error.tsx` must be a Client Component.
64
+
65
+ ### 7. Separate expected errors from unexpected errors
66
+ - Treat expected errors, such as validation failures, not-found cases, and user-correctable failures, as explicit states or return values.
67
+ - Let unexpected errors throw so route-level error boundaries can handle them.
68
+ - Keep client-safe messages in UI responses and logs/internal details at the server boundary.
69
+
70
+ ### 8. Use metadata APIs instead of manual `<head>` tags
71
+ - Use `metadata` or `generateMetadata` for route metadata.
72
+ - Do not manually add `<title>` or `<meta>` tags in root layouts.
73
+ - Use file-based metadata conventions for icons, Open Graph images, robots, sitemap, and related files when appropriate.
74
+
75
+ ### 9. Keep rendering and data ownership clear
76
+ - Server Components can fetch and prepare data for rendering.
77
+ - Client Components should own interaction state and browser behavior.
78
+ - Avoid duplicating derived state between server-rendered data and client state.
79
+ - Do not move data fetching to the client unless it is user-triggered, browser-specific, or intentionally client-side.
80
+
81
+ ### 10. Prefer simple route segment design
82
+ - Use route groups and advanced routing features only when they clearly improve organization or behavior.
83
+ - Do not introduce parallel routes, intercepting routes, templates, or segment config unless the feature actually needs them.
84
+ - Prefer the standard App Router primitives first.
85
+
86
+ ## Decision rule
87
+
88
+ When unsure, prefer:
89
+ 1. Server Components by default
90
+ 2. the smallest necessary Client Component boundary
91
+ 3. App Router files as thin framework adapters
92
+ 4. framework conventions over custom routing abstractions
93
+ 5. `metadata` / `generateMetadata` over manual head management
94
+ 6. explicit loading, not-found, and error states when the route needs them
@@ -0,0 +1,128 @@
1
+ ---
2
+ name: product-vision-writer
3
+ description: Create product vision documents for products at any stage. Use when an assistant should interview the user with focused discovery questions, clarify product purpose, audience, positioning, principles, boundaries, voice, trust expectations, and success signals, then synthesize the answers into a human, opinionated, structured Markdown product vision document at docs/product-vision.md.
4
+ ---
5
+
6
+ # Product Vision Writer
7
+
8
+ ## Purpose
9
+
10
+ Help write product vision documents that make a product feel clear, intentional, and worth building. Work for any product domain and any product stage.
11
+
12
+ Default output path: `docs/product-vision.md`.
13
+
14
+ ## Workflow
15
+
16
+ ### 1. Start with discovery, not drafting
17
+
18
+ Ask focused questions before writing the document unless the user has already provided enough source material.
19
+
20
+ Ask one question at a time. Wait for the user's answer before asking the next discovery question.
21
+
22
+ Prefer the fewest questions that can produce a useful document. Ask follow-ups only when an answer materially changes the document or when a critical input is missing.
23
+
24
+ Cover these areas over the course of the interview:
25
+
26
+ - **Product essence:** What is the product? What should it help people do, feel, or become?
27
+ - **Current context:** Is this a new concept, an active project, or an existing product?
28
+ - **Target user:** Who is it for? What is true about their life, work, habits, or desires?
29
+ - **Core problem or desire:** What pain, need, ambition, or emotional gap does the product address?
30
+ - **Emotional promise:** What should the ideal user reaction be?
31
+ - **Positioning:** What is this product compared against, and how should it feel different?
32
+ - **Product philosophy:** What principles should guide product decisions?
33
+ - **User control:** How much should users configure, decide, or manage?
34
+ - **Trust and quality:** What must the product be honest about? Where can it be imperfect?
35
+ - **Product voice:** How should the product sound? What language should it avoid?
36
+ - **Boundaries:** What should the product not become?
37
+ - **Success signal:** What behavior or outcome proves the product is working?
38
+
39
+ When helpful, ask for examples of products, experiences, media, brands, or moments the user wants the product to feel like or avoid.
40
+
41
+ ### 2. Synthesize before structuring
42
+
43
+ Before drafting, infer the product's through-line:
44
+
45
+ - the central promise
46
+ - the main user tension
47
+ - the strongest differentiation
48
+ - the product's opinion about the world
49
+ - the decision-making principles that should survive future feature debates
50
+
51
+ If the user's answers conflict, resolve the conflict explicitly in the draft by choosing the clearest product direction. Do not preserve every idea equally.
52
+
53
+ ### 3. Draft the product vision document
54
+
55
+ Write in Markdown. Use clear headings, short paragraphs, and bullets where they improve readability.
56
+
57
+ Recommended structure:
58
+
59
+ ```markdown
60
+ # <Product Name> Product Vision
61
+
62
+ ## Summary
63
+
64
+ ## Product North Star
65
+
66
+ ## Target User
67
+
68
+ ## Product Positioning
69
+
70
+ ## Product Philosophy
71
+
72
+ ## User Control
73
+
74
+ ## Trust and Quality
75
+
76
+ ## Product Voice
77
+
78
+ ## What <Product Name> Should Not Become
79
+
80
+ ## Success Signal
81
+ ```
82
+
83
+ Adapt sections to the product. Add, rename, merge, or omit sections when useful.
84
+
85
+ ### 4. Write in the right style
86
+
87
+ Aim for writing that is:
88
+
89
+ - human
90
+ - opinionated
91
+ - concrete
92
+ - concise
93
+ - emotionally clear
94
+ - useful for decision-making
95
+ - free of generic startup language
96
+
97
+ Avoid:
98
+
99
+ - corporate fluff
100
+ - vague claims like “seamless,” “innovative,” or “leveraging technology” unless grounded in specifics
101
+ - overexplaining
102
+ - feature lists masquerading as vision
103
+ - excessive frameworks
104
+ - pretending unresolved strategy questions are settled
105
+
106
+ Use the user's own language when it is vivid or revealing. Improve clarity without sanding off personality.
107
+
108
+ ### 5. Handle incomplete inputs
109
+
110
+ If the user has only a rough idea, produce a sharper first-pass vision with clearly stated assumptions.
111
+
112
+ If the user has an existing product, make the document reflect what the product is today and what it must protect or change.
113
+
114
+ If there is not enough context to write responsibly, ask the smallest possible follow-up question set instead of inventing details.
115
+
116
+ ### 6. Save the document
117
+
118
+ When working in a repository, write the product vision document to `docs/product-vision.md` by default. Create the `docs/` directory if needed.
119
+
120
+ If `docs/product-vision.md` already exists, read it before drafting. Treat the request as a revision when the user asks to revise, clarify, or update the product vision. Ask before overwriting an existing document when the user appears to be asking for a separate new product vision.
121
+
122
+ If the user explicitly requests a different path, use that path instead.
123
+
124
+ ### 7. Final response behavior
125
+
126
+ After writing the file, briefly report the path that was created or updated. Include the full document in the response only if the user asks to review it inline.
127
+
128
+ If file writes are unavailable, provide the Markdown content and state that it is intended for `docs/product-vision.md`.
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: react
3
+ description: Use this skill when working on React components and component design.
4
+ ---
5
+
6
+ # react
7
+
8
+ Use this skill when working on React components and component design.
9
+
10
+ This skill covers React componentization, component responsibility, state ownership, and presentation-vs-interaction boundaries.
11
+
12
+ ## Use this skill for
13
+
14
+ - creating or editing React components
15
+ - splitting large components
16
+ - deciding where state should live
17
+ - separating presentational components from server-interacting or data-owning components
18
+ - reviewing component responsibility and prop design
19
+
20
+ ## Core principles
21
+
22
+ ### 1. Treat components like focused functions
23
+ - A component should have one clear reason to exist.
24
+ - If a component does too many unrelated things, split it.
25
+ - Prefer small components with clear names and explicit responsibilities.
26
+ - Do not split components just to create more files; split when it improves understanding.
27
+
28
+ ### 2. Separate presentational components from data-owning components
29
+ - Presentational components should mostly render UI from props.
30
+ - Data-owning components may fetch, subscribe, mutate, or coordinate data.
31
+ - Keep it obvious which components interact with the server and which are purely presentational.
32
+ - Avoid hiding server interactions deep inside components that look presentational.
33
+
34
+ ### 3. Keep props narrow and explicit
35
+ - Pass only what the child component needs.
36
+ - Prefer specific props over large loosely typed objects.
37
+ - Use prop names that describe component intent, not implementation details.
38
+ - Avoid prop drilling when it makes the component tree hard to understand; do not add context prematurely.
39
+
40
+ ### 4. Keep render logic pure
41
+ - Rendering should depend on props, state, and context.
42
+ - Do not mutate external values during render.
43
+ - Keep side effects out of render logic.
44
+ - Calculate derived values during render when they are cheap and deterministic.
45
+
46
+ ### 5. Put state at the right level
47
+ - Keep state local when only one component needs it.
48
+ - Lift state to the closest common parent when multiple components need to coordinate.
49
+ - Avoid duplicating derived state that can be computed from props or existing state.
50
+ - Prefer a single clear source of truth.
51
+
52
+ ### 6. Isolate interactivity
53
+ - Keep interactive behavior close to the component that owns it.
54
+ - If only a small part of the UI needs interactivity, isolate that part instead of making a larger tree interactive.
55
+ - Separate event handling from presentation when doing so makes responsibility clearer.
56
+
57
+ ### 7. Prefer composition over configuration-heavy components
58
+ - Compose smaller components instead of building one component with many modes and flags.
59
+ - If a component needs many boolean props, consider whether it is doing too much.
60
+ - Use `children` or named subcomponents when composition makes the API clearer.
61
+
62
+ ### 8. Make component boundaries visible
63
+ - Name components by what they represent in the UI or product.
64
+ - Keep server-interacting, stateful, and presentational responsibilities easy to identify from the component shape.
65
+ - Avoid mixing data fetching, mutation, layout, formatting, and low-level UI rendering in one component.
66
+
67
+ ## Decision rule
68
+
69
+ When unsure, prefer:
70
+ 1. one clear responsibility per component
71
+ 2. presentational components that render from props
72
+ 3. data/server interaction in obvious owner components
73
+ 4. local state unless coordination requires lifting it
74
+ 5. composition over flag-heavy component APIs
75
+ 6. no duplicated derived state
@@ -0,0 +1,191 @@
1
+ ---
2
+ name: scrum-master-planner
3
+ description: Create pragmatic Epics and User Stories from an approved feature brief and technical design. Use when asked to plan delivery, create epics, write user stories, split a feature into backlog work, or turn a feature brief plus technical design under docs/features into Scrum planning artifacts.
4
+ ---
5
+
6
+ # Scrum Master Planner
7
+
8
+ ## Purpose
9
+
10
+ Turn an approved feature brief and technical design into the smallest useful Scrum planning structure: Epics and User Stories that are clear enough for a team to implement and validate.
11
+
12
+ This skill owns delivery planning artifacts. It does not own product vision, feature definition, technical design, code implementation, or project-management tool automation.
13
+
14
+ ## Required inputs
15
+
16
+ Before planning, read:
17
+
18
+ ```txt
19
+ docs/features/<feature-slug>/feature_brief.md
20
+ docs/features/<feature-slug>/technical_design.md
21
+ ```
22
+
23
+ Also read `docs/product-vision.md` when it exists and the planning decision depends on product fit, scope boundaries, user value, or success signals.
24
+
25
+ ## Hard start rule
26
+
27
+ Do not create Epics or User Stories if either the feature brief or technical design is missing.
28
+
29
+ If an input is missing:
30
+
31
+ 1. Stop.
32
+ 2. Say which file is missing.
33
+ 3. Ask the user to create the missing artifact first.
34
+ 4. Do not invent planning scope from partial context.
35
+
36
+ ## Output locations
37
+
38
+ For a feature at:
39
+
40
+ ```txt
41
+ docs/features/<feature-slug>/feature_brief.md
42
+ ```
43
+
44
+ write Epics and User Stories under:
45
+
46
+ ```txt
47
+ docs/features/<feature-slug>/epics/<epic-slug>/epic_brief.md
48
+ docs/features/<feature-slug>/epics/<epic-slug>/stories/<order>-<user-story-slug>.md
49
+ ```
50
+
51
+ Rules:
52
+
53
+ - Every User Story must belong to exactly one Epic.
54
+ - Never create orphan User Stories outside an Epic folder.
55
+ - Use kebab-case slugs for Epic folders and User Story filenames.
56
+ - Prefix every User Story filename with a two-digit execution order within its Epic, such as `01-`, `02-`, or `03-`.
57
+ - Use the same order number for User Stories that can be developed in parallel within the same Epic.
58
+ - Keep all artifacts for the feature under the same `docs/features/<feature-slug>/` tree.
59
+
60
+ ## Planning rule
61
+
62
+ Create the smallest useful planning structure.
63
+
64
+ If one Epic with one User Story fully captures the work, create one Epic and one User Story. Add more Epics or User Stories only when there are meaningfully distinct outcomes, delivery slices, risks, dependencies, validation paths, or contributor ownership boundaries.
65
+
66
+ Avoid Agile theater. Do not create multiple Epics or Stories just because Scrum artifacts usually appear in groups.
67
+
68
+ ## Workflow
69
+
70
+ ### 1. Read source artifacts
71
+
72
+ Identify from the feature brief:
73
+
74
+ - user/customer problem
75
+ - MVP scope
76
+ - out-of-scope boundaries
77
+ - success signals
78
+ - business-level acceptance criteria
79
+
80
+ Identify from the technical design:
81
+
82
+ - implementation slices
83
+ - affected commands, files, modules, integrations, or docs
84
+ - validation expectations
85
+ - meaningful risks or unresolved decisions
86
+
87
+ ### 2. Choose Epic boundaries
88
+
89
+ Create Epics around coherent delivery outcomes, not technical layers.
90
+
91
+ Good Epic boundaries include:
92
+
93
+ - a user-visible capability
94
+ - a complete CLI workflow
95
+ - a self-contained documentation or planning outcome
96
+ - a risk-reduction slice needed before broader work
97
+ - a contributor-owned chunk that can be reviewed independently
98
+
99
+ Avoid Epics that are only generic layers such as “frontend,” “backend,” “tests,” or “refactor” unless the source docs explicitly make that the delivery outcome.
100
+
101
+ ### 3. Write each Epic brief
102
+
103
+ Each `epic_brief.md` should use this structure:
104
+
105
+ ```md
106
+ # <Epic Name> Epic Brief
107
+
108
+ ## Summary
109
+ <What outcome this Epic delivers and why it matters.>
110
+
111
+ ## Source Context
112
+ - Feature brief: <relative path>
113
+ - Technical design: <relative path>
114
+
115
+ ## Scope
116
+ - <What belongs in this Epic.>
117
+
118
+ ## Out of Scope
119
+ - <What this Epic intentionally does not cover.>
120
+
121
+ ## User Stories
122
+ - [<Story title>](./stories/<order>-<user-story-slug>.md)
123
+
124
+ ## Acceptance Criteria
125
+ - <Epic-level criteria that prove the outcome is complete.>
126
+
127
+ ## Dependencies / Risks
128
+ - <Only meaningful dependencies, risks, or sequencing notes.>
129
+ ```
130
+
131
+ Adapt headings only when it improves clarity. Keep the Epic brief short.
132
+
133
+ ### 4. Sequence and write User Stories
134
+
135
+ 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.
136
+
137
+ Each User Story should be independently understandable and should represent a reviewable slice of work.
138
+
139
+ Use this structure:
140
+
141
+ ```md
142
+ # <User Story Title>
143
+
144
+ ## Epic
145
+ [<Epic Name>](./epic_brief.md)
146
+
147
+ ## User Story
148
+ As a <user or contributor>, I want <capability or outcome>, so that <value or reason>.
149
+
150
+ ## Context
151
+ <Brief source-grounded context.>
152
+
153
+ ## Scope
154
+ - <What this story includes.>
155
+
156
+ ## Out of Scope
157
+ - <What this story excludes.>
158
+
159
+ ## Acceptance Criteria
160
+ - <Observable, testable behavior or artifact.>
161
+
162
+ ## Validation
163
+ - <Manual or automated checks from the technical design.>
164
+
165
+ ## Notes
166
+ - <Optional implementation, sequencing, or risk notes. Omit if not useful.>
167
+ ```
168
+
169
+ Keep Stories concrete, but do not turn them into implementation plans or task checklists. If detailed implementation guidance is needed, point to the technical design instead of restating it.
170
+
171
+ ### 5. Check coverage and boundaries
172
+
173
+ Before finishing, verify:
174
+
175
+ - every MVP scope item from the feature brief is covered by at least one Epic or Story, or intentionally left out with a reason
176
+ - every Story belongs to exactly one Epic
177
+ - every Story filename includes a two-digit execution order prefix
178
+ - Stories with the same order number are actually parallelizable
179
+ - Story count is pragmatic, not inflated
180
+ - no Story adds scope that is absent from the feature brief or technical design
181
+ - acceptance criteria are testable enough for a reviewer
182
+
183
+ ## Final response behavior
184
+
185
+ After writing files, briefly report:
186
+
187
+ - the Epic directories created or updated
188
+ - the number of Epics and User Stories
189
+ - any source-scope items intentionally left unresolved or captured as risks
190
+
191
+ Do not paste all generated artifacts unless the user asks to review them inline.
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: technical-design-writer
3
+ description: Use this skill to turn an approved feature brief into a concise, implementation-oriented technical design that delegates code-quality and architecture details to the relevant skills instead of restating them.
4
+ ---
5
+
6
+ # technical-design-writer
7
+
8
+ Write the smallest useful technical design doc for an approved feature.
9
+
10
+ The doc should help a human say, “cool, I understand the implementation direction,” and help a later coding agent say, “nice, I know what to do next.” Avoid filler, generic engineering advice, and restating other skills.
11
+
12
+ ## Grounding
13
+
14
+ Before writing, read:
15
+
16
+ 1. `docs/product-vision.md`
17
+ 2. the feature brief
18
+ 3. `clean-code`
19
+ 4. any selected architecture, language, or framework skills that apply
20
+ 5. relevant existing repo files and flows
21
+
22
+ Apply those inputs. Do not summarize them back into the technical design unless a specific implication changes the implementation.
23
+
24
+ ## Required input
25
+
26
+ Require a Markdown feature brief. If the user only has a vague idea, route to `feature-brief-writer` first.
27
+
28
+ If the feature has UI impact, use an existing UX artifact when available. If missing, note the UI uncertainty briefly instead of inventing UX.
29
+
30
+ ## Design stance
31
+
32
+ Translate product intent into implementation direction.
33
+
34
+ Prefer:
35
+
36
+ - concise decisions over long explanation
37
+ - concrete file/module impact over abstract architecture language
38
+ - current codebase patterns over speculative redesigns
39
+ - explicit open questions over risky assumptions
40
+ - delegation to the right skills instead of duplicating their guidance
41
+
42
+ Avoid:
43
+
44
+ - restating clean-code, architecture, language, or framework principles
45
+ - product scope expansion
46
+ - user stories, tickets, or delivery plans
47
+ - invented CLI/database/API concepts that the feature brief did not ask for
48
+ - large template sections that say “none” without adding value
49
+
50
+ ## Delegation rule
51
+
52
+ A technical design may name the skills that later implementation should use, but it should not repeat their contents.
53
+
54
+ Examples:
55
+
56
+ - Good: “Implementation should follow `command-pattern` for the new `sibu skills use` command slice.”
57
+ - Bad: restating the full command/handler/port responsibilities from the `command-pattern` skill.
58
+ - Good: “Use `clean-code` during implementation; no extra code-quality rules are introduced here.”
59
+ - Bad: adding a generic clean-code checklist to the doc.
60
+
61
+ ## Workflow
62
+
63
+ 1. Read the required grounding artifacts.
64
+ 2. Inspect the relevant existing code before proposing changes.
65
+ 3. Identify only the implementation decisions that matter.
66
+ 4. Write the doc at `docs/features/<feature-slug>/technical_design.md`.
67
+ 5. Keep it concise. Remove any section that does not help implementation.
68
+
69
+ ## Output location
70
+
71
+ Always create or update:
72
+
73
+ ```txt
74
+ docs/features/<feature-slug>/technical_design.md
75
+ ```
76
+
77
+ Use the same kebab-case feature slug as the feature brief.
78
+
79
+ ## Output format
80
+
81
+ Use this structure as a starting point, not a contract. Delete sections that do not add value.
82
+
83
+ ```md
84
+ # Technical Design: <Feature Name>
85
+
86
+ ## Inputs
87
+ - Product vision: <path>
88
+ - Feature brief: <path>
89
+ - Delegated skills: <skills later implementation should apply>
90
+
91
+ ## Summary
92
+ <2-4 sentences describing the implementation direction.>
93
+
94
+ ## Existing Context
95
+ <Only the current files, commands, modules, state, templates, or integrations that materially affect the change.>
96
+
97
+ ## Proposed Design
98
+ <Concrete implementation decisions. Include command flows, file/module impact, state changes, and integration boundaries when relevant.>
99
+
100
+ ## Validation
101
+ <Focused test/build/manual checks.>
102
+
103
+ ## Risks / Open Questions
104
+ - <Only unresolved decisions or meaningful risks.>
105
+ ```
106
+
107
+ ## Quality bar
108
+
109
+ A good technical design is short, specific, and useful. It should not try to be the product brief, architecture skill, clean-code skill, implementation plan, or ticket backlog.