pumuki 6.3.39 → 6.3.41
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/README.md +21 -12
- package/VERSION +1 -1
- package/core/gate/evaluateRules.test.ts +40 -0
- package/core/gate/evaluateRules.ts +7 -1
- package/core/rules/Consequence.ts +1 -0
- package/docs/CONFIGURATION.md +50 -0
- package/docs/INSTALLATION.md +38 -11
- package/docs/MCP_SERVERS.md +1 -1
- package/docs/README.md +1 -0
- package/docs/RELEASE_NOTES.md +58 -0
- package/docs/USAGE.md +191 -9
- package/docs/registro-maestro-de-seguimiento.md +2 -2
- package/docs/seguimiento-activo-pumuki-saas-supermercados.md +1629 -1
- package/docs/validation/README.md +2 -1
- package/docs/validation/ast-intelligence-roadmap.md +96 -0
- package/integrations/config/skillsCustomRules.ts +14 -0
- package/integrations/config/skillsDetectorRegistry.ts +11 -1
- package/integrations/config/skillsLock.ts +30 -0
- package/integrations/config/skillsMarkdownRules.ts +14 -3
- package/integrations/config/skillsRuleSet.ts +25 -3
- package/integrations/evidence/readEvidence.test.ts +3 -2
- package/integrations/evidence/readEvidence.ts +14 -4
- package/integrations/evidence/repoState.ts +10 -2
- package/integrations/evidence/schema.test.ts +3 -2
- package/integrations/evidence/schema.ts +3 -0
- package/integrations/evidence/writeEvidence.test.ts +3 -2
- package/integrations/gate/evaluateAiGate.ts +511 -2
- package/integrations/git/GitService.ts +5 -1
- package/integrations/git/astIntelligenceDualValidation.ts +275 -0
- package/integrations/git/gitAtomicity.ts +42 -9
- package/integrations/git/resolveGitRefs.ts +37 -0
- package/integrations/git/runPlatformGate.ts +228 -1
- package/integrations/git/runPlatformGateEvaluation.ts +4 -0
- package/integrations/git/stageRunners.ts +116 -2
- package/integrations/lifecycle/cli.ts +759 -22
- package/integrations/lifecycle/doctor.ts +62 -0
- package/integrations/lifecycle/index.ts +1 -0
- package/integrations/lifecycle/packageInfo.ts +25 -3
- package/integrations/lifecycle/policyReconcile.ts +304 -0
- package/integrations/lifecycle/preWriteAutomation.ts +42 -2
- package/integrations/lifecycle/watch.ts +365 -0
- package/integrations/mcp/aiGateCheck.ts +59 -2
- package/integrations/mcp/autoExecuteAiStart.ts +25 -1
- package/integrations/mcp/preFlightCheck.ts +13 -0
- package/integrations/sdd/evidenceScaffold.ts +223 -0
- package/integrations/sdd/index.ts +2 -0
- package/integrations/sdd/stateSync.ts +400 -0
- package/integrations/sdd/syncDocs.ts +97 -2
- package/package.json +4 -1
- package/scripts/backlog-action-reasons-lib.ts +38 -0
- package/scripts/backlog-id-issue-map-lib.ts +69 -0
- package/scripts/backlog-json-contract-lib.ts +3 -0
- package/scripts/framework-menu-consumer-preflight-lib.ts +6 -0
- package/scripts/framework-menu-system-notifications-lib.ts +66 -6
- package/scripts/package-install-smoke-command-resolution-lib.ts +64 -0
- package/scripts/package-install-smoke-consumer-npm-lib.ts +43 -0
- package/scripts/package-install-smoke-consumer-repo-setup-lib.ts +2 -0
- package/scripts/package-install-smoke-execution-steps-lib.ts +27 -9
- package/scripts/package-install-smoke-lifecycle-lib.ts +15 -4
- package/scripts/package-install-smoke-workspace-factory-lib.ts +4 -1
- package/scripts/reconcile-consumer-backlog-issues-lib.ts +651 -0
- package/scripts/reconcile-consumer-backlog-issues.ts +348 -0
- package/scripts/watch-consumer-backlog-lib.ts +465 -0
- package/scripts/watch-consumer-backlog.ts +326 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SmokeExpectation } from './package-install-smoke-contract';
|
|
2
2
|
import { runGateStep, type SmokeGateStep } from './package-install-smoke-gate-lib';
|
|
3
|
+
import { resolveConsumerPumukiCommand } from './package-install-smoke-command-resolution-lib';
|
|
3
4
|
import type { SmokeWorkspace } from './package-install-smoke-workspace-contract';
|
|
4
5
|
|
|
5
6
|
export type SmokeStepResult = {
|
|
@@ -8,25 +9,30 @@ export type SmokeStepResult = {
|
|
|
8
9
|
exitCode: number;
|
|
9
10
|
};
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
type SmokeGateStepDescriptor = {
|
|
13
|
+
label: SmokeGateStep['label'];
|
|
14
|
+
binary: string;
|
|
15
|
+
args?: ReadonlyArray<string>;
|
|
16
|
+
evidenceFile: SmokeGateStep['evidenceFile'];
|
|
17
|
+
stage: SmokeGateStep['stage'];
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const DEFAULT_SMOKE_GATE_STEPS: ReadonlyArray<SmokeGateStepDescriptor> = [
|
|
12
21
|
{
|
|
13
22
|
label: 'pre-commit',
|
|
14
|
-
|
|
15
|
-
args: ['--yes', 'pumuki-pre-commit'],
|
|
23
|
+
binary: 'pumuki-pre-commit',
|
|
16
24
|
evidenceFile: 'pre-commit.ai_evidence.json',
|
|
17
25
|
stage: 'PRE_COMMIT',
|
|
18
26
|
},
|
|
19
27
|
{
|
|
20
28
|
label: 'pre-push',
|
|
21
|
-
|
|
22
|
-
args: ['--yes', 'pumuki-pre-push'],
|
|
29
|
+
binary: 'pumuki-pre-push',
|
|
23
30
|
evidenceFile: 'pre-push.ai_evidence.json',
|
|
24
31
|
stage: 'PRE_PUSH',
|
|
25
32
|
},
|
|
26
33
|
{
|
|
27
34
|
label: 'ci',
|
|
28
|
-
|
|
29
|
-
args: ['--yes', 'pumuki-ci'],
|
|
35
|
+
binary: 'pumuki-ci',
|
|
30
36
|
evidenceFile: 'ci.ai_evidence.json',
|
|
31
37
|
stage: 'CI',
|
|
32
38
|
},
|
|
@@ -36,10 +42,22 @@ export const runDefaultSmokeGateSteps = (params: {
|
|
|
36
42
|
workspace: SmokeWorkspace;
|
|
37
43
|
expectation: SmokeExpectation;
|
|
38
44
|
}): ReadonlyArray<SmokeStepResult> =>
|
|
39
|
-
DEFAULT_SMOKE_GATE_STEPS.map((
|
|
45
|
+
DEFAULT_SMOKE_GATE_STEPS.map((stepDescriptor) => {
|
|
46
|
+
const resolvedCommand = resolveConsumerPumukiCommand({
|
|
47
|
+
consumerRepo: params.workspace.consumerRepo,
|
|
48
|
+
binary: stepDescriptor.binary,
|
|
49
|
+
args: stepDescriptor.args,
|
|
50
|
+
});
|
|
51
|
+
const step: SmokeGateStep = {
|
|
52
|
+
label: stepDescriptor.label,
|
|
53
|
+
command: resolvedCommand.executable,
|
|
54
|
+
args: resolvedCommand.args,
|
|
55
|
+
evidenceFile: stepDescriptor.evidenceFile,
|
|
56
|
+
stage: stepDescriptor.stage,
|
|
57
|
+
};
|
|
40
58
|
const result = runGateStep(params.workspace, step, params.expectation);
|
|
41
59
|
return {
|
|
42
|
-
label:
|
|
60
|
+
label: stepDescriptor.label,
|
|
43
61
|
outcome: result.outcome,
|
|
44
62
|
exitCode: result.exitCode,
|
|
45
63
|
};
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
assertSuccess,
|
|
4
4
|
runCommand,
|
|
5
5
|
} from './package-install-smoke-runner-common';
|
|
6
|
+
import { resolveConsumerPumukiCommand } from './package-install-smoke-command-resolution-lib';
|
|
6
7
|
import { pushCommandLog, type SmokeWorkspace } from './package-install-smoke-workspace-lib';
|
|
7
8
|
|
|
8
9
|
const normalizeStatus = (value: string): string =>
|
|
@@ -27,10 +28,15 @@ export const captureLifecycleStatusSnapshot = (workspace: SmokeWorkspace): strin
|
|
|
27
28
|
getShortStatus(workspace);
|
|
28
29
|
|
|
29
30
|
export const runLifecycleInstallStep = (workspace: SmokeWorkspace): void => {
|
|
31
|
+
const command = resolveConsumerPumukiCommand({
|
|
32
|
+
consumerRepo: workspace.consumerRepo,
|
|
33
|
+
binary: 'pumuki',
|
|
34
|
+
args: ['install'],
|
|
35
|
+
});
|
|
30
36
|
const result = runCommand({
|
|
31
37
|
cwd: workspace.consumerRepo,
|
|
32
|
-
executable:
|
|
33
|
-
args:
|
|
38
|
+
executable: command.executable,
|
|
39
|
+
args: command.args,
|
|
34
40
|
env: {
|
|
35
41
|
PUMUKI_SKIP_OPENSPEC_BOOTSTRAP: '1',
|
|
36
42
|
},
|
|
@@ -41,10 +47,15 @@ export const runLifecycleInstallStep = (workspace: SmokeWorkspace): void => {
|
|
|
41
47
|
};
|
|
42
48
|
|
|
43
49
|
export const runLifecycleUninstallStep = (workspace: SmokeWorkspace): void => {
|
|
50
|
+
const command = resolveConsumerPumukiCommand({
|
|
51
|
+
consumerRepo: workspace.consumerRepo,
|
|
52
|
+
binary: 'pumuki',
|
|
53
|
+
args: ['uninstall', '--purge-artifacts'],
|
|
54
|
+
});
|
|
44
55
|
const result = runCommand({
|
|
45
56
|
cwd: workspace.consumerRepo,
|
|
46
|
-
executable:
|
|
47
|
-
args:
|
|
57
|
+
executable: command.executable,
|
|
58
|
+
args: command.args,
|
|
48
59
|
});
|
|
49
60
|
pushCommandLog(workspace.commandLog, result);
|
|
50
61
|
assertNoFatalOutput(result, 'pumuki lifecycle uninstall');
|
|
@@ -15,7 +15,10 @@ export const createSmokeWorkspace = (mode: SmokeMode): SmokeWorkspace => {
|
|
|
15
15
|
ensureDirectory(reportRoot);
|
|
16
16
|
|
|
17
17
|
const tmpRoot = mkdtempSync(join(tmpdir(), 'pumuki-package-smoke-'));
|
|
18
|
-
const consumerRepo = join(
|
|
18
|
+
const consumerRepo = join(
|
|
19
|
+
tmpRoot,
|
|
20
|
+
process.platform === 'win32' ? 'consumer' : 'consumer:repo'
|
|
21
|
+
);
|
|
19
22
|
const bareRemote = join(tmpRoot, 'origin.git');
|
|
20
23
|
|
|
21
24
|
return {
|