@juancr11/sibu 0.14.0 → 0.15.1
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/bin/admin/release.js +15 -1
- package/bin/modules/maintainer-release-support/release-workflow/handler.js +9 -2
- package/package.json +1 -1
- package/templates/manifest.json +11 -11
- package/templates/skills/deep-module-map-writer/SKILL.md +3 -1
- package/templates/skills/feature-brief-writer/SKILL.md +3 -1
- package/templates/skills/product-vision-writer/SKILL.md +4 -2
- package/templates/skills/technical-design-writer/SKILL.md +3 -1
- package/templates/skills/ux-expert/SKILL.md +3 -1
package/bin/admin/release.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createInterface } from 'node:readline/promises';
|
|
3
|
-
import { execFileSync } from 'node:child_process';
|
|
3
|
+
import { execFileSync, spawnSync } from 'node:child_process';
|
|
4
4
|
import fs from 'node:fs';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
6
|
import { previewAndConfirmMaintainerRelease } from '../modules/maintainer-release-support/release-workflow/handler.js';
|
|
@@ -166,6 +166,20 @@ function createTerminalPorts() {
|
|
|
166
166
|
return commandFailure(error);
|
|
167
167
|
}
|
|
168
168
|
},
|
|
169
|
+
runInteractive(command, args) {
|
|
170
|
+
const result = spawnSync(command, args, {
|
|
171
|
+
stdio: 'inherit',
|
|
172
|
+
});
|
|
173
|
+
if (result.error) {
|
|
174
|
+
return {
|
|
175
|
+
exitCode: 1,
|
|
176
|
+
stderr: result.error.message,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
return {
|
|
180
|
+
exitCode: result.status ?? 1,
|
|
181
|
+
};
|
|
182
|
+
},
|
|
169
183
|
};
|
|
170
184
|
}
|
|
171
185
|
function printExecutionResult(result, ports) {
|
|
@@ -207,8 +207,9 @@ export async function executeConfirmedRelease(plan, ports) {
|
|
|
207
207
|
}
|
|
208
208
|
const npmPublishArgs = buildNpmPublishArgs(plan);
|
|
209
209
|
const npmPublishLog = plan.hasOtp ? 'npm publish --access public --otp ******' : 'npm publish --access public';
|
|
210
|
-
|
|
211
|
-
|
|
210
|
+
const npmPublishMode = plan.hasOtp ? 'captured OTP publish' : 'interactive browser/2FA-capable publish';
|
|
211
|
+
printExecutionProgress(ports, `Publishing package to npm: ${npmPublishLog} (${npmPublishMode})...`);
|
|
212
|
+
const npmPublish = await runNpmPublish(ports, npmPublishArgs, plan);
|
|
212
213
|
if (npmPublish.exitCode !== 0) {
|
|
213
214
|
const failure = failExecution(completedSteps, 'publish-npm', 'Publishing to npm failed.', npmPublish);
|
|
214
215
|
printExecutionFailure(ports, failure);
|
|
@@ -272,6 +273,12 @@ function buildNpmPublishArgs(plan) {
|
|
|
272
273
|
}
|
|
273
274
|
return args;
|
|
274
275
|
}
|
|
276
|
+
function runNpmPublish(ports, args, plan) {
|
|
277
|
+
if (plan.hasOtp || !ports.runInteractive) {
|
|
278
|
+
return ports.run('npm', args);
|
|
279
|
+
}
|
|
280
|
+
return ports.runInteractive('npm', args);
|
|
281
|
+
}
|
|
275
282
|
async function runStep(ports, completedSteps, stepName, startMessage, command, args, completedMessage) {
|
|
276
283
|
printExecutionProgress(ports, startMessage);
|
|
277
284
|
const result = await ports.run(command, args);
|
package/package.json
CHANGED
package/templates/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"templateVersion": "
|
|
2
|
+
"templateVersion": "104",
|
|
3
3
|
"templates": {
|
|
4
4
|
"AGENTS.md": {
|
|
5
5
|
"version": "30",
|
|
@@ -51,31 +51,31 @@
|
|
|
51
51
|
]
|
|
52
52
|
},
|
|
53
53
|
"skills/product-vision-writer/SKILL.md": {
|
|
54
|
-
"version": "
|
|
54
|
+
"version": "9",
|
|
55
55
|
"description": "Mandatory product vision writer skill installed once at the shared .agents/skills workspace path.",
|
|
56
56
|
"changes": [
|
|
57
|
-
"
|
|
57
|
+
"Makes product vision discovery mandatory before drafting, even when existing context looks complete."
|
|
58
58
|
]
|
|
59
59
|
},
|
|
60
60
|
"skills/deep-module-map-writer/SKILL.md": {
|
|
61
|
-
"version": "
|
|
61
|
+
"version": "5",
|
|
62
62
|
"description": "Mandatory Deep Module Map writer skill installed once at the shared .agents/skills workspace path.",
|
|
63
63
|
"changes": [
|
|
64
|
-
"
|
|
64
|
+
"Makes Deep Module Map interviews mandatory before drafting, even when repo code or existing docs look complete."
|
|
65
65
|
]
|
|
66
66
|
},
|
|
67
67
|
"skills/feature-brief-writer/SKILL.md": {
|
|
68
|
-
"version": "
|
|
68
|
+
"version": "14",
|
|
69
69
|
"description": "Mandatory feature brief writer skill installed once at the shared .agents/skills workspace path.",
|
|
70
70
|
"changes": [
|
|
71
|
-
"
|
|
71
|
+
"Makes feature brief interviews mandatory before drafting while keeping export workflows delegated to dedicated exporter skills."
|
|
72
72
|
]
|
|
73
73
|
},
|
|
74
74
|
"skills/technical-design-writer/SKILL.md": {
|
|
75
|
-
"version": "
|
|
75
|
+
"version": "20",
|
|
76
76
|
"description": "Mandatory technical design writer skill installed once at the shared .agents/skills workspace path.",
|
|
77
77
|
"changes": [
|
|
78
|
-
"
|
|
78
|
+
"Makes technical design clarification mandatory before drafting while keeping export workflows delegated to dedicated exporter skills."
|
|
79
79
|
]
|
|
80
80
|
},
|
|
81
81
|
"skills/typescript/SKILL.md": {
|
|
@@ -163,10 +163,10 @@
|
|
|
163
163
|
]
|
|
164
164
|
},
|
|
165
165
|
"skills/ux-expert/SKILL.md": {
|
|
166
|
-
"version": "
|
|
166
|
+
"version": "10",
|
|
167
167
|
"description": "Selectable UX expert skill for UI-changing features, responsive design, flows, states, accessibility, and binding mockups.",
|
|
168
168
|
"changes": [
|
|
169
|
-
"
|
|
169
|
+
"Makes UX clarification mandatory before drafting while keeping export workflows delegated to dedicated exporter skills."
|
|
170
170
|
]
|
|
171
171
|
},
|
|
172
172
|
"skills/architecture/layered-architecture/SKILL.md": {
|
|
@@ -35,7 +35,7 @@ This skill owns the Deep Module Map only. It does not own feature briefs, techni
|
|
|
35
35
|
|
|
36
36
|
- Do not create feature briefs, technical designs, UX specs, Epics, User Stories, implementation plans, or production code.
|
|
37
37
|
- Do not choose a specific internal architecture, service split, database model, framework, or team ownership structure.
|
|
38
|
-
- Do not
|
|
38
|
+
- Do not skip the interview or the final “I am clear; are you good?” check-in before writing. Once the user confirms there is nothing else to cover, write without requiring a recap, artifact approval, or separate summary confirmation.
|
|
39
39
|
- Do not invent Deep Modules without grounding them in the product vision, current system behavior, and user interview.
|
|
40
40
|
- Do not treat a command, screen, helper, folder, data object, or technical layer as a Deep Module merely because it exists.
|
|
41
41
|
- Do not leave material module-boundary questions unresolved in the final map; keep interviewing until the user answers, confirms an assumption, or explicitly excludes the boundary.
|
|
@@ -125,6 +125,8 @@ This file is user-owned product and implementation-boundary content created or u
|
|
|
125
125
|
|
|
126
126
|
Be deliberately interrogative before writing.
|
|
127
127
|
|
|
128
|
+
This interview is mandatory and non-skippable. Even when the repository has substantial code, existing docs, an existing map, or extensive initial context, ask at least one explicit user-facing discovery question before drafting or writing the Deep Module Map. Treat code, repository artifacts, prior conversation, and initial context as useful but provisional: they can shape better questions, but they must not replace the interview or become the full source of truth for module boundaries, interfaces, hidden complexity, or ownership. Keep asking focused follow-up questions until the module decisions are clear enough to defend. Before drafting, always perform one final check-in in the spirit of: “I am clear on my end. Are you good, or is there anything else you want to cover before I proceed?” If the user adds context, incorporate or clarify it before writing.
|
|
129
|
+
|
|
128
130
|
- Ask one focused question at a time.
|
|
129
131
|
- Ask as many one-at-a-time questions as needed to understand the app well enough to defend the map; do not optimize for a short interview.
|
|
130
132
|
- Walk down each module-boundary decision branch one by one, resolving dependencies between candidate modules before drafting.
|
|
@@ -36,7 +36,7 @@ This skill owns the product/business shape of a feature. It does not own UI inte
|
|
|
36
36
|
|
|
37
37
|
- Do not create or update Deep Module Maps, technical designs, UX specs, Epics, User Stories, implementation plans, or production code.
|
|
38
38
|
- Do not invent Deep Modules or use modules that are absent from `docs/deep-module-map.md`.
|
|
39
|
-
- Do not
|
|
39
|
+
- Do not skip the interview or the final “I am clear; are you good?” check-in before writing. Once the user confirms there is nothing else to cover, write without requiring a recap, artifact approval, or separate summary confirmation.
|
|
40
40
|
- Do not duplicate or rewrite the product vision; apply only the relevant implications to the feature.
|
|
41
41
|
- Do not leave material product, scope, success, constraint, or Deep Module fit questions unresolved in the final brief; keep interviewing until the user answers, confirms an assumption, or explicitly excludes the topic.
|
|
42
42
|
|
|
@@ -110,6 +110,8 @@ If the user asks for a feature brief from an idea in `docs/feature-ideas.md`, re
|
|
|
110
110
|
|
|
111
111
|
Be deliberately interrogative before drafting. The feature brief should reflect the user's intent, not the assistant's assumptions.
|
|
112
112
|
|
|
113
|
+
This interview is mandatory and non-skippable. Even when the user provides extensive initial context, existing docs, repo code, or a raw idea file, ask at least one explicit user-facing discovery question before drafting or writing the feature brief. Treat repository artifacts, prior conversation, existing product docs, and initial context as useful but provisional: they can shape better questions, but they must not replace the interview or become the full source of truth for feature intent, scope, success, constraints, or user value. Keep asking focused follow-up questions until the feature decisions are clear enough to defend. Before drafting, always perform one final check-in in the spirit of: “I am clear on my end. Are you good, or is there anything else you want to cover before I proceed?” If the user adds context, incorporate or clarify it before writing.
|
|
114
|
+
|
|
113
115
|
- Ask one focused question at a time.
|
|
114
116
|
- Keep asking until you have complete practical understanding and explicit user alignment; do not optimize for a short interview.
|
|
115
117
|
- Walk down each feature decision branch one by one, resolving dependencies between product, scope, success, constraint, and module-fit decisions before drafting.
|
|
@@ -33,14 +33,16 @@ Default output path: `docs/product-vision.md`.
|
|
|
33
33
|
### What this skill must not do
|
|
34
34
|
|
|
35
35
|
- Do not create Deep Module Maps, feature briefs, technical designs, UX specs, Epics, User Stories, implementation plans, or production code.
|
|
36
|
-
- Do not
|
|
36
|
+
- Do not skip the interview or the final “I am clear; are you good?” check-in before writing. Once the user confirms there is nothing else to cover, write without requiring a recap, artifact approval, or separate summary confirmation.
|
|
37
37
|
- Do not leave material strategy questions unresolved in the final document; keep interviewing until the user answers, confirms an assumption, or explicitly excludes the topic.
|
|
38
38
|
|
|
39
39
|
## Workflow
|
|
40
40
|
|
|
41
41
|
### 1. Start with discovery, not drafting
|
|
42
42
|
|
|
43
|
-
Interview before writing
|
|
43
|
+
Interview before writing. Be deliberately interrogative: ask as many focused questions as needed to extract all material product vision decisions before drafting.
|
|
44
|
+
|
|
45
|
+
This interview is mandatory and non-skippable. Even when the user provides extensive initial context, existing documents, or a mature codebase, ask at least one explicit user-facing discovery question before drafting or writing the product vision. Treat repository artifacts, prior conversation, and initial context as useful but provisional: they can shape better questions, but they must not replace the interview or become the full source of truth for the user's product intent. Keep asking focused follow-up questions until the material product vision decisions are clear enough to defend. Before drafting, always perform one final check-in in the spirit of: “I am clear on my end. Are you good, or is there anything else you want to cover before I proceed?” If the user adds context, incorporate or clarify it before writing.
|
|
44
46
|
|
|
45
47
|
Ask one question at a time. Walk down the product decision tree branch by branch, resolving dependencies between decisions before moving on. When useful, include a recommended answer or concise assumption so the user can confirm, correct, or reject it quickly. If a question can be answered from existing repository artifacts, inspect those artifacts instead of asking.
|
|
46
48
|
|
|
@@ -36,7 +36,7 @@ Write the smallest useful technical design doc for an approved feature: enough f
|
|
|
36
36
|
- Do not invent new Deep Modules or move work into unselected modules.
|
|
37
37
|
- Do not redesign binding UX mockups.
|
|
38
38
|
- Do not duplicate architecture, language, framework, or clean-code skill guidance.
|
|
39
|
-
- Do not
|
|
39
|
+
- Do not skip the interview or the final “I am clear; are you good?” check-in before writing. Once the user confirms there is nothing else to cover, write without requiring a recap, artifact approval, or separate summary confirmation.
|
|
40
40
|
|
|
41
41
|
## Grounding
|
|
42
42
|
|
|
@@ -66,6 +66,8 @@ If the feature has UI impact, require `docs/features/<feature-slug>/ux.md`. If i
|
|
|
66
66
|
|
|
67
67
|
Be deliberately interrogative before drafting. The technical design should reflect resolved implementation direction, not risky assistant assumptions.
|
|
68
68
|
|
|
69
|
+
This interview is mandatory and non-skippable. Even when the approved artifacts, repo files, codebase, or prior conversation seem complete, ask at least one explicit user-facing technical clarification question before drafting or writing the technical design. Treat repository artifacts, source docs, prior conversation, and initial context as useful but provisional for current implementation intent: they can shape better questions, but they must not replace the interview or become the full source of truth for implementation direction, boundaries, risks, or validation choices. Keep asking focused follow-up questions until the technical decisions are clear enough to defend. Before drafting, always perform one final check-in in the spirit of: “I am clear on my end. Are you good, or is there anything else you want to cover before I proceed?” If the user adds context, incorporate or clarify it before writing.
|
|
70
|
+
|
|
69
71
|
- Ask one focused question at a time when repository artifacts and source docs do not resolve a material technical ambiguity.
|
|
70
72
|
- Ask as many questions as required to reach complete practical understanding; do not optimize for a short interview.
|
|
71
73
|
- If a question can be answered by reading repository artifacts, inspect those artifacts instead of asking.
|
|
@@ -33,7 +33,7 @@ Act as a senior UX/UI designer. Turn an approved product artifact into usable, e
|
|
|
33
33
|
- Do not create or update product visions, Deep Module Maps, feature briefs, technical designs, Epics, User Stories, implementation plans, or production code.
|
|
34
34
|
- Do not make architecture, framework, API, data model, or file-path decisions.
|
|
35
35
|
- Do not treat UX work as optional for UI-changing features; concrete mockups are required.
|
|
36
|
-
- Do not
|
|
36
|
+
- Do not skip the interview or the final “I am clear; are you good?” check-in before writing. Once the user confirms there is nothing else to cover, write without requiring a recap, artifact approval, or separate summary confirmation.
|
|
37
37
|
|
|
38
38
|
## Required grounding
|
|
39
39
|
|
|
@@ -45,6 +45,8 @@ Require a product artifact such as `docs/features/<feature-slug>/feature_brief.m
|
|
|
45
45
|
|
|
46
46
|
Be deliberately interrogative before drafting. The UX spec should reflect resolved experience direction, not assistant-invented assumptions.
|
|
47
47
|
|
|
48
|
+
This interview is mandatory and non-skippable. Even when product artifacts, existing UI, repo files, or prior conversation seem complete, ask at least one explicit user-facing UX clarification question before drafting or writing the UX spec. Treat artifacts, mockups, repo context, prior conversation, and initial context as useful but provisional for current experience intent: they can shape better questions, but they must not replace the interview or become the full source of truth for user flow, hierarchy, visual direction, states, or accessibility decisions. Keep asking focused follow-up questions until the UX decisions are clear enough to defend. Before drafting, always perform one final check-in in the spirit of: “I am clear on my end. Are you good, or is there anything else you want to cover before I proceed?” If the user adds context, incorporate or clarify it before writing.
|
|
49
|
+
|
|
48
50
|
- Ask one focused question at a time when product artifacts do not resolve a material UX ambiguity.
|
|
49
51
|
- Ask as many questions as required to reach complete practical understanding; do not optimize for a short interview.
|
|
50
52
|
- If a question can be answered by reading repository artifacts, inspect those artifacts instead of asking.
|