@g3nomaly/skills 0.3.0 → 1.0.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.
- package/LICENSE +95 -0
- package/dist/cli/adapter.d.ts +30 -0
- package/dist/cli/adapter.d.ts.map +1 -0
- package/dist/cli/adapter.js +86 -0
- package/dist/cli/adapter.js.map +1 -0
- package/dist/cli/commands/add.d.ts +17 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/add.js +108 -0
- package/dist/cli/commands/add.js.map +1 -0
- package/dist/cli/commands/hook.d.ts +6 -0
- package/dist/cli/commands/hook.d.ts.map +1 -0
- package/dist/cli/commands/hook.js +18 -0
- package/dist/cli/commands/hook.js.map +1 -0
- package/dist/cli/commands/init.d.ts +22 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +119 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/ls.d.ts +4 -0
- package/dist/cli/commands/ls.d.ts.map +1 -0
- package/dist/cli/commands/ls.js +8 -0
- package/dist/cli/commands/ls.js.map +1 -0
- package/dist/cli/commands/remove.d.ts +12 -0
- package/dist/cli/commands/remove.d.ts.map +1 -0
- package/dist/cli/commands/remove.js +60 -0
- package/dist/cli/commands/remove.js.map +1 -0
- package/dist/cli/commands/update.d.ts +13 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +49 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +72 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/decisions/index.d.ts +6 -0
- package/dist/decisions/index.d.ts.map +1 -0
- package/dist/decisions/index.js +5 -0
- package/dist/decisions/index.js.map +1 -0
- package/dist/decisions/paths.d.ts +4 -0
- package/dist/decisions/paths.d.ts.map +1 -0
- package/dist/decisions/paths.js +12 -0
- package/dist/decisions/paths.js.map +1 -0
- package/dist/decisions/read.d.ts +18 -0
- package/dist/decisions/read.d.ts.map +1 -0
- package/dist/decisions/read.js +45 -0
- package/dist/decisions/read.js.map +1 -0
- package/dist/decisions/write.d.ts +20 -0
- package/dist/decisions/write.d.ts.map +1 -0
- package/dist/decisions/write.js +48 -0
- package/dist/decisions/write.js.map +1 -0
- package/dist/filetree/ensure.d.ts +7 -0
- package/dist/filetree/ensure.d.ts.map +1 -0
- package/dist/filetree/ensure.js +36 -0
- package/dist/filetree/ensure.js.map +1 -0
- package/dist/filetree/entries.d.ts +9 -0
- package/dist/filetree/entries.d.ts.map +1 -0
- package/dist/filetree/entries.js +49 -0
- package/dist/filetree/entries.js.map +1 -0
- package/dist/filetree/frontmatter.d.ts +16 -0
- package/dist/filetree/frontmatter.d.ts.map +1 -0
- package/dist/filetree/frontmatter.js +43 -0
- package/dist/filetree/frontmatter.js.map +1 -0
- package/dist/filetree/generate.d.ts +16 -0
- package/dist/filetree/generate.d.ts.map +1 -0
- package/dist/filetree/generate.js +62 -0
- package/dist/filetree/generate.js.map +1 -0
- package/dist/filetree/index.d.ts +17 -0
- package/dist/filetree/index.d.ts.map +1 -0
- package/dist/filetree/index.js +13 -0
- package/dist/filetree/index.js.map +1 -0
- package/dist/filetree/levels.d.ts +25 -0
- package/dist/filetree/levels.d.ts.map +1 -0
- package/dist/filetree/levels.js +45 -0
- package/dist/filetree/levels.js.map +1 -0
- package/dist/filetree/locate.d.ts +44 -0
- package/dist/filetree/locate.d.ts.map +1 -0
- package/dist/filetree/locate.js +76 -0
- package/dist/filetree/locate.js.map +1 -0
- package/dist/filetree/paths.d.ts +15 -0
- package/dist/filetree/paths.d.ts.map +1 -0
- package/dist/filetree/paths.js +38 -0
- package/dist/filetree/paths.js.map +1 -0
- package/dist/filetree/read.d.ts +23 -0
- package/dist/filetree/read.d.ts.map +1 -0
- package/dist/filetree/read.js +36 -0
- package/dist/filetree/read.js.map +1 -0
- package/dist/filetree/remove.d.ts +9 -0
- package/dist/filetree/remove.d.ts.map +1 -0
- package/dist/filetree/remove.js +17 -0
- package/dist/filetree/remove.js.map +1 -0
- package/dist/filetree/root.d.ts +9 -0
- package/dist/filetree/root.d.ts.map +1 -0
- package/dist/filetree/root.js +15 -0
- package/dist/filetree/root.js.map +1 -0
- package/dist/filetree/status.d.ts +21 -0
- package/dist/filetree/status.d.ts.map +1 -0
- package/dist/filetree/status.js +55 -0
- package/dist/filetree/status.js.map +1 -0
- package/dist/hooks/cli.d.ts +29 -0
- package/dist/hooks/cli.d.ts.map +1 -0
- package/dist/hooks/cli.js +65 -0
- package/dist/hooks/cli.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/grilling/.claude-plugin/plugin.json +7 -0
- package/dist/plugins/grilling/skills/domain-modeling/ADR-FORMAT.md +47 -0
- package/dist/plugins/grilling/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/dist/plugins/grilling/skills/domain-modeling/SKILL.md +74 -0
- package/dist/plugins/grilling/skills/domain-modeling/agents/openai.yaml +3 -0
- package/dist/plugins/grilling/skills/grill-me/SKILL.md +7 -0
- package/dist/plugins/grilling/skills/grill-me/agents/openai.yaml +5 -0
- package/dist/plugins/grilling/skills/grill-with-docs/SKILL.md +7 -0
- package/dist/plugins/grilling/skills/grill-with-docs/agents/openai.yaml +5 -0
- package/dist/plugins/grilling/skills/grilling/SKILL.md +12 -0
- package/dist/plugins/grilling/skills/grilling/agents/openai.yaml +3 -0
- package/dist/plugins/speech/.claude-plugin/plugin.json +7 -0
- package/dist/plugins/speech/skills/emphasise/SKILL.md +49 -0
- package/dist/plugins/speech/skills/emphasise/agents/openai.yaml +5 -0
- package/dist/plugins/speech/skills/unslop/SKILL.md +80 -0
- package/dist/plugins/task-manager/.claude-plugin/plugin.json +11 -0
- package/dist/plugins/task-manager/hooks/hooks.json +19 -0
- package/dist/plugins/task-manager/skills/decisions/SKILL.md +39 -0
- package/dist/plugins/task-manager/skills/decisions/agents/openai.yaml +5 -0
- package/dist/plugins/task-manager/skills/decisions/references/usage.md +26 -0
- package/dist/plugins/task-manager/skills/task-manager/SKILL.md +99 -0
- package/dist/plugins/task-manager/skills/vocabulary/SKILL.md +42 -0
- package/dist/plugins/task-manager/skills/vocabulary/agents/openai.yaml +5 -0
- package/dist/plugins/task-manager/skills/vocabulary/references/usage.md +26 -0
- package/dist/plugins/using-hooks/.claude-plugin/plugin.json +7 -0
- package/dist/plugins/using-hooks/skills/hook-post-tool-use/SKILL.md +79 -0
- package/dist/plugins/using-hooks/skills/hook-post-tool-use/agents/openai.yaml +5 -0
- package/dist/plugins/using-hooks/skills/hook-pre-tool-use/SKILL.md +84 -0
- package/dist/plugins/using-hooks/skills/hook-pre-tool-use/agents/openai.yaml +5 -0
- package/dist/plugins/using-hooks/skills/hook-stop/SKILL.md +69 -0
- package/dist/plugins/using-hooks/skills/hook-stop/agents/openai.yaml +5 -0
- package/dist/plugins/using-hooks/skills/hook-user-prompt-submit/SKILL.md +64 -0
- package/dist/plugins/using-hooks/skills/hook-user-prompt-submit/agents/openai.yaml +5 -0
- package/dist/plugins/workflow/.claude-plugin/plugin.json +16 -0
- package/dist/plugins/workflow/agents/reviewer.md +9 -0
- package/dist/plugins/workflow/skills/execute/SKILL.md +21 -0
- package/dist/plugins/workflow/skills/execute/agents/openai.yaml +5 -0
- package/dist/plugins/workflow/skills/orchestrator/SKILL.md +27 -0
- package/dist/plugins/workflow/skills/orchestrator/agents/openai.yaml +5 -0
- package/dist/plugins/workflow/skills/plan/SKILL.md +18 -0
- package/dist/plugins/workflow/skills/plan/agents/openai.yaml +5 -0
- package/dist/plugins/workflow/skills/plan/references/task-frontmatter.md +33 -0
- package/dist/plugins/workflow/skills/review/SKILL.md +25 -0
- package/dist/plugins/workflow/skills/review/agents/openai.yaml +5 -0
- package/dist/plugins/workflow/skills/run/SKILL.md +33 -0
- package/dist/plugins/workflow/skills/run/agents/openai.yaml +5 -0
- package/dist/plugins/workflow/skills/run/references/sub-agents.md +46 -0
- package/dist/plugins/workflow/skills/sync/SKILL.md +18 -0
- package/dist/plugins/workflow/skills/sync/agents/openai.yaml +5 -0
- package/dist/plugins/workflow/skills/worktree/SKILL.md +38 -0
- package/dist/plugins/workflow/skills/worktree/agents/openai.yaml +5 -0
- package/dist/plugins/workflow/skills/worktree/references/git-commands.md +27 -0
- package/dist/plugins/writing/.claude-plugin/plugin.json +7 -0
- package/dist/plugins/writing/skills/writing-great-hooks/SKILL.md +192 -0
- package/dist/plugins/writing/skills/writing-great-hooks/agents/openai.yaml +5 -0
- package/dist/plugins/writing/skills/writing-great-skills/GLOSSARY.md +201 -0
- package/dist/plugins/writing/skills/writing-great-skills/SKILL.md +92 -0
- package/dist/plugins/writing/skills/writing-great-skills/agents/openai.yaml +5 -0
- package/dist/plugins/writing/skills/writing-great-tasks/SKILL.md +136 -0
- package/dist/plugins/writing/skills/writing-great-tasks/agents/openai.yaml +5 -0
- package/dist/plugins/writing/skills/writing-great-tasks/templates/template_task.md +108 -0
- package/dist/registry/index.d.ts +5 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +6 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/loadPackageRegistry.d.ts +14 -0
- package/dist/registry/loadPackageRegistry.d.ts.map +1 -0
- package/dist/registry/loadPackageRegistry.js +59 -0
- package/dist/registry/loadPackageRegistry.js.map +1 -0
- package/dist/registry/readSkillDir.d.ts +12 -0
- package/dist/registry/readSkillDir.d.ts.map +1 -0
- package/dist/registry/readSkillDir.js +59 -0
- package/dist/registry/readSkillDir.js.map +1 -0
- package/dist/registry/types.d.ts +53 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +35 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/registry/userManifest.d.ts +7 -0
- package/dist/registry/userManifest.d.ts.map +1 -0
- package/dist/registry/userManifest.js +21 -0
- package/dist/registry/userManifest.js.map +1 -0
- package/dist/remote/fetch.d.ts +16 -0
- package/dist/remote/fetch.d.ts.map +1 -0
- package/dist/remote/fetch.js +41 -0
- package/dist/remote/fetch.js.map +1 -0
- package/dist/remote/index.d.ts +7 -0
- package/dist/remote/index.d.ts.map +1 -0
- package/dist/remote/index.js +5 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/remote/manifest.d.ts +23 -0
- package/dist/remote/manifest.d.ts.map +1 -0
- package/dist/remote/manifest.js +116 -0
- package/dist/remote/manifest.js.map +1 -0
- package/dist/remote/registry.d.ts +18 -0
- package/dist/remote/registry.d.ts.map +1 -0
- package/dist/remote/registry.js +58 -0
- package/dist/remote/registry.js.map +1 -0
- package/dist/schemas/config.d.ts +3 -0
- package/dist/schemas/config.d.ts.map +1 -0
- package/dist/schemas/config.js +3 -0
- package/dist/schemas/config.js.map +1 -0
- package/dist/schemas/decision.d.ts +43 -0
- package/dist/schemas/decision.d.ts.map +1 -0
- package/dist/schemas/decision.js +24 -0
- package/dist/schemas/decision.js.map +1 -0
- package/dist/schemas/index.d.ts +17 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +10 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/phase.d.ts +46 -0
- package/dist/schemas/phase.d.ts.map +1 -0
- package/dist/schemas/phase.js +16 -0
- package/dist/schemas/phase.js.map +1 -0
- package/dist/schemas/plan.d.ts +44 -0
- package/dist/schemas/plan.d.ts.map +1 -0
- package/dist/schemas/plan.js +15 -0
- package/dist/schemas/plan.js.map +1 -0
- package/dist/schemas/primitives.d.ts +38 -0
- package/dist/schemas/primitives.d.ts.map +1 -0
- package/dist/schemas/primitives.js +33 -0
- package/dist/schemas/primitives.js.map +1 -0
- package/dist/schemas/task.d.ts +70 -0
- package/dist/schemas/task.d.ts.map +1 -0
- package/dist/schemas/task.js +19 -0
- package/dist/schemas/task.js.map +1 -0
- package/dist/schemas/term.d.ts +17 -0
- package/dist/schemas/term.d.ts.map +1 -0
- package/dist/schemas/term.js +22 -0
- package/dist/schemas/term.js.map +1 -0
- package/dist/schemas/validation.d.ts +24 -0
- package/dist/schemas/validation.d.ts.map +1 -0
- package/dist/schemas/validation.js +39 -0
- package/dist/schemas/validation.js.map +1 -0
- package/dist/task-manager/hooks/add-decision.d.ts +2 -0
- package/dist/task-manager/hooks/add-decision.d.ts.map +1 -0
- package/dist/task-manager/hooks/add-decision.js +19 -0
- package/dist/task-manager/hooks/add-decision.js.map +1 -0
- package/dist/task-manager/hooks/cleanup.d.ts +2 -0
- package/dist/task-manager/hooks/cleanup.d.ts.map +1 -0
- package/dist/task-manager/hooks/cleanup.js +27 -0
- package/dist/task-manager/hooks/cleanup.js.map +1 -0
- package/dist/task-manager/hooks/get-decision.d.ts +2 -0
- package/dist/task-manager/hooks/get-decision.d.ts.map +1 -0
- package/dist/task-manager/hooks/get-decision.js +11 -0
- package/dist/task-manager/hooks/get-decision.js.map +1 -0
- package/dist/task-manager/hooks/get-entry.d.ts +2 -0
- package/dist/task-manager/hooks/get-entry.d.ts.map +1 -0
- package/dist/task-manager/hooks/get-entry.js +20 -0
- package/dist/task-manager/hooks/get-entry.js.map +1 -0
- package/dist/task-manager/hooks/get-term.d.ts +2 -0
- package/dist/task-manager/hooks/get-term.d.ts.map +1 -0
- package/dist/task-manager/hooks/get-term.js +13 -0
- package/dist/task-manager/hooks/get-term.js.map +1 -0
- package/dist/task-manager/hooks/guard-tree.d.ts +2 -0
- package/dist/task-manager/hooks/guard-tree.d.ts.map +1 -0
- package/dist/task-manager/hooks/guard-tree.js +63 -0
- package/dist/task-manager/hooks/guard-tree.js.map +1 -0
- package/dist/task-manager/hooks/index.d.ts +4 -0
- package/dist/task-manager/hooks/index.d.ts.map +1 -0
- package/dist/task-manager/hooks/index.js +32 -0
- package/dist/task-manager/hooks/index.js.map +1 -0
- package/dist/task-manager/hooks/list-decisions.d.ts +2 -0
- package/dist/task-manager/hooks/list-decisions.d.ts.map +1 -0
- package/dist/task-manager/hooks/list-decisions.js +20 -0
- package/dist/task-manager/hooks/list-decisions.js.map +1 -0
- package/dist/task-manager/hooks/list-entries.d.ts +2 -0
- package/dist/task-manager/hooks/list-entries.d.ts.map +1 -0
- package/dist/task-manager/hooks/list-entries.js +19 -0
- package/dist/task-manager/hooks/list-entries.js.map +1 -0
- package/dist/task-manager/hooks/list-terms.d.ts +2 -0
- package/dist/task-manager/hooks/list-terms.d.ts.map +1 -0
- package/dist/task-manager/hooks/list-terms.js +8 -0
- package/dist/task-manager/hooks/list-terms.js.map +1 -0
- package/dist/task-manager/hooks/next-entry.d.ts +2 -0
- package/dist/task-manager/hooks/next-entry.d.ts.map +1 -0
- package/dist/task-manager/hooks/next-entry.js +23 -0
- package/dist/task-manager/hooks/next-entry.js.map +1 -0
- package/dist/task-manager/hooks/remove-term.d.ts +2 -0
- package/dist/task-manager/hooks/remove-term.d.ts.map +1 -0
- package/dist/task-manager/hooks/remove-term.js +15 -0
- package/dist/task-manager/hooks/remove-term.js.map +1 -0
- package/dist/task-manager/hooks/set-state.d.ts +2 -0
- package/dist/task-manager/hooks/set-state.d.ts.map +1 -0
- package/dist/task-manager/hooks/set-state.js +15 -0
- package/dist/task-manager/hooks/set-state.js.map +1 -0
- package/dist/task-manager/hooks/set-term.d.ts +2 -0
- package/dist/task-manager/hooks/set-term.d.ts.map +1 -0
- package/dist/task-manager/hooks/set-term.js +27 -0
- package/dist/task-manager/hooks/set-term.js.map +1 -0
- package/dist/task-manager/hooks/sync-tree.d.ts +2 -0
- package/dist/task-manager/hooks/sync-tree.d.ts.map +1 -0
- package/dist/task-manager/hooks/sync-tree.js +28 -0
- package/dist/task-manager/hooks/sync-tree.js.map +1 -0
- package/dist/task-manager/index.d.ts +2 -0
- package/dist/task-manager/index.d.ts.map +1 -0
- package/dist/task-manager/index.js +3 -0
- package/dist/task-manager/index.js.map +1 -0
- package/dist/vocabulary/file.d.ts +15 -0
- package/dist/vocabulary/file.d.ts.map +1 -0
- package/dist/vocabulary/file.js +80 -0
- package/dist/vocabulary/file.js.map +1 -0
- package/dist/vocabulary/index.d.ts +4 -0
- package/dist/vocabulary/index.d.ts.map +1 -0
- package/dist/vocabulary/index.js +4 -0
- package/dist/vocabulary/index.js.map +1 -0
- package/dist/vocabulary/match.d.ts +22 -0
- package/dist/vocabulary/match.d.ts.map +1 -0
- package/dist/vocabulary/match.js +31 -0
- package/dist/vocabulary/match.js.map +1 -0
- package/dist/workflow/gates.d.ts +24 -0
- package/dist/workflow/gates.d.ts.map +1 -0
- package/dist/workflow/gates.js +34 -0
- package/dist/workflow/gates.js.map +1 -0
- package/dist/workflow/hooks/advance-step.d.ts +2 -0
- package/dist/workflow/hooks/advance-step.d.ts.map +1 -0
- package/dist/workflow/hooks/advance-step.js +51 -0
- package/dist/workflow/hooks/advance-step.js.map +1 -0
- package/dist/workflow/hooks/current-step.d.ts +2 -0
- package/dist/workflow/hooks/current-step.d.ts.map +1 -0
- package/dist/workflow/hooks/current-step.js +24 -0
- package/dist/workflow/hooks/current-step.js.map +1 -0
- package/dist/workflow/hooks/index.d.ts +4 -0
- package/dist/workflow/hooks/index.d.ts.map +1 -0
- package/dist/workflow/hooks/index.js +10 -0
- package/dist/workflow/hooks/index.js.map +1 -0
- package/dist/workflow/hooks/ready-phases.d.ts +2 -0
- package/dist/workflow/hooks/ready-phases.d.ts.map +1 -0
- package/dist/workflow/hooks/ready-phases.js +15 -0
- package/dist/workflow/hooks/ready-phases.js.map +1 -0
- package/dist/workflow/index.d.ts +8 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +6 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/phase.d.ts +16 -0
- package/dist/workflow/phase.d.ts.map +1 -0
- package/dist/workflow/phase.js +22 -0
- package/dist/workflow/phase.js.map +1 -0
- package/dist/workflow/steps.d.ts +15 -0
- package/dist/workflow/steps.d.ts.map +1 -0
- package/dist/workflow/steps.js +32 -0
- package/dist/workflow/steps.js.map +1 -0
- package/package.json +62 -3
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/schemas/config.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,YAAY,GACb,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/schemas/config.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/** Folder inside a plan holding its decision files. No phase may take this name. */
|
|
3
|
+
export declare const DECISIONS_DIR = "decisions";
|
|
4
|
+
export declare const DECISION_STATUSES: readonly ["proposed", "accepted", "deprecated", "superseded"];
|
|
5
|
+
export declare const DecisionStatusSchema: z.ZodEnum<{
|
|
6
|
+
accepted: "accepted";
|
|
7
|
+
deprecated: "deprecated";
|
|
8
|
+
proposed: "proposed";
|
|
9
|
+
superseded: "superseded";
|
|
10
|
+
}>;
|
|
11
|
+
export type DecisionStatus = z.infer<typeof DecisionStatusSchema>;
|
|
12
|
+
/** A decision id: four digits, a hyphen, then a slug — e.g. `0001-use-jwt`. Doubles as the file name. */
|
|
13
|
+
export declare const DecisionIdSchema: z.ZodString;
|
|
14
|
+
/** Frontmatter of one decision file in a plan's `decisions/` folder. */
|
|
15
|
+
export declare const DecisionSchema: z.ZodObject<{
|
|
16
|
+
id: z.ZodString;
|
|
17
|
+
title: z.ZodString;
|
|
18
|
+
status: z.ZodEnum<{
|
|
19
|
+
accepted: "accepted";
|
|
20
|
+
deprecated: "deprecated";
|
|
21
|
+
proposed: "proposed";
|
|
22
|
+
superseded: "superseded";
|
|
23
|
+
}>;
|
|
24
|
+
date: z.ZodISODate;
|
|
25
|
+
supersedes: z.ZodOptional<z.ZodString>;
|
|
26
|
+
}, z.core.$strict>;
|
|
27
|
+
export type Decision = z.infer<typeof DecisionSchema>;
|
|
28
|
+
export declare const DecisionIndexSchema: z.ZodObject<{
|
|
29
|
+
decisions: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
30
|
+
id: z.ZodString;
|
|
31
|
+
title: z.ZodString;
|
|
32
|
+
status: z.ZodEnum<{
|
|
33
|
+
accepted: "accepted";
|
|
34
|
+
deprecated: "deprecated";
|
|
35
|
+
proposed: "proposed";
|
|
36
|
+
superseded: "superseded";
|
|
37
|
+
}>;
|
|
38
|
+
date: z.ZodISODate;
|
|
39
|
+
supersedes: z.ZodOptional<z.ZodString>;
|
|
40
|
+
}, z.core.$strict>>>;
|
|
41
|
+
}, z.core.$strict>;
|
|
42
|
+
export type DecisionIndex = z.infer<typeof DecisionIndexSchema>;
|
|
43
|
+
//# sourceMappingURL=decision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../src/schemas/decision.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oFAAoF;AACpF,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,eAAO,MAAM,iBAAiB,YAAI,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,CAAU,CAAC;AAC/F,eAAO,MAAM,oBAAoB;;;;;EAA4B,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,yGAAyG;AACzG,eAAO,MAAM,gBAAgB,aAEqF,CAAC;AAEnH,wEAAwE;AACxE,eAAO,MAAM,cAAc;;;;;;;;;;;kBAQzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;kBAE9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// packages/skills/src/schemas/decision.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
/** Folder inside a plan holding its decision files. No phase may take this name. */
|
|
4
|
+
export const DECISIONS_DIR = "decisions";
|
|
5
|
+
export const DECISION_STATUSES = ["proposed", "accepted", "deprecated", "superseded"];
|
|
6
|
+
export const DecisionStatusSchema = z.enum(DECISION_STATUSES);
|
|
7
|
+
/** A decision id: four digits, a hyphen, then a slug — e.g. `0001-use-jwt`. Doubles as the file name. */
|
|
8
|
+
export const DecisionIdSchema = z
|
|
9
|
+
.string()
|
|
10
|
+
.regex(/^\d{4}-[a-z0-9]+(?:-[a-z0-9]+)*$/, 'must look like "0001-use-jwt" — four digits, a hyphen, then a slug');
|
|
11
|
+
/** Frontmatter of one decision file in a plan's `decisions/` folder. */
|
|
12
|
+
export const DecisionSchema = z.strictObject({
|
|
13
|
+
id: DecisionIdSchema,
|
|
14
|
+
title: z.string().min(1),
|
|
15
|
+
status: DecisionStatusSchema,
|
|
16
|
+
/** Day the decision was recorded, as `YYYY-MM-DD` */
|
|
17
|
+
date: z.iso.date(),
|
|
18
|
+
/** Id of the earlier decision this one replaces */
|
|
19
|
+
supersedes: DecisionIdSchema.optional(),
|
|
20
|
+
});
|
|
21
|
+
export const DecisionIndexSchema = z.strictObject({
|
|
22
|
+
decisions: z.array(DecisionSchema).default([]),
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=decision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision.js","sourceRoot":"","sources":["../../src/schemas/decision.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oFAAoF;AACpF,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,CAAU,CAAC;AAC/F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAG9D,yGAAyG;AACzG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,EAAE;KACR,KAAK,CAAC,kCAAkC,EAAE,oEAAoE,CAAC,CAAC;AAEnH,wEAAwE;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,YAAY,CAAC;IAC3C,EAAE,EAAE,gBAAgB;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,oBAAoB;IAC5B,qDAAqD;IACrD,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;IAClB,mDAAmD;IACnD,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/C,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { STATUSES, StatusSchema, PRIORITIES, PrioritySchema, WORKTREE_TYPES, WorktreeTypeSchema, PlanIdSchema, PhaseIdSchema, TaskIdSchema, } from "./primitives";
|
|
2
|
+
export type { TaskStatus, TaskPriority, WorktreeType } from "./primitives";
|
|
3
|
+
export { PlanSchema, PlanIndexSchema } from "./plan";
|
|
4
|
+
export type { Plan, PlanIndex } from "./plan";
|
|
5
|
+
export { PhaseSchema, PhaseIndexSchema } from "./phase";
|
|
6
|
+
export type { Phase, PhaseIndex } from "./phase";
|
|
7
|
+
export { TaskSchema, TaskIndexSchema } from "./task";
|
|
8
|
+
export type { Task, TaskIndex } from "./task";
|
|
9
|
+
export { DECISIONS_DIR, DECISION_STATUSES, DecisionStatusSchema, DecisionIdSchema, DecisionSchema, DecisionIndexSchema, } from "./decision";
|
|
10
|
+
export type { DecisionStatus, Decision, DecisionIndex } from "./decision";
|
|
11
|
+
export { TermSchema, VocabularySchema } from "./term";
|
|
12
|
+
export type { Term, Vocabulary } from "./term";
|
|
13
|
+
export { SkillsSettingsSchema, SkillsConfigSchema } from "./config";
|
|
14
|
+
export type { SkillsSettings, SkillsConfig } from "./config";
|
|
15
|
+
export { parseFile, FileValidationError } from "./validation";
|
|
16
|
+
export type { FileValidationIssue } from "./validation";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACrD,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACxD,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACrD,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACtD,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// packages/skills/src/schemas/index.ts
|
|
2
|
+
export { STATUSES, StatusSchema, PRIORITIES, PrioritySchema, WORKTREE_TYPES, WorktreeTypeSchema, PlanIdSchema, PhaseIdSchema, TaskIdSchema, } from "./primitives";
|
|
3
|
+
export { PlanSchema, PlanIndexSchema } from "./plan";
|
|
4
|
+
export { PhaseSchema, PhaseIndexSchema } from "./phase";
|
|
5
|
+
export { TaskSchema, TaskIndexSchema } from "./task";
|
|
6
|
+
export { DECISIONS_DIR, DECISION_STATUSES, DecisionStatusSchema, DecisionIdSchema, DecisionSchema, DecisionIndexSchema, } from "./decision";
|
|
7
|
+
export { TermSchema, VocabularySchema } from "./term";
|
|
8
|
+
export { SkillsSettingsSchema, SkillsConfigSchema } from "./config";
|
|
9
|
+
export { parseFile, FileValidationError } from "./validation";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAGtD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const PhaseSchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
title: z.ZodString;
|
|
5
|
+
priority: z.ZodEnum<{
|
|
6
|
+
critical: "critical";
|
|
7
|
+
high: "high";
|
|
8
|
+
low: "low";
|
|
9
|
+
medium: "medium";
|
|
10
|
+
}>;
|
|
11
|
+
depends_on: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
12
|
+
summary: z.ZodString;
|
|
13
|
+
parrallel: z.ZodDefault<z.ZodBoolean>;
|
|
14
|
+
status: z.ZodEnum<{
|
|
15
|
+
blocked: "blocked";
|
|
16
|
+
completed: "completed";
|
|
17
|
+
"in-progress": "in-progress";
|
|
18
|
+
"in-review": "in-review";
|
|
19
|
+
open: "open";
|
|
20
|
+
}>;
|
|
21
|
+
}, z.core.$strict>;
|
|
22
|
+
export type Phase = z.infer<typeof PhaseSchema>;
|
|
23
|
+
export declare const PhaseIndexSchema: z.ZodObject<{
|
|
24
|
+
phases: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
25
|
+
name: z.ZodString;
|
|
26
|
+
title: z.ZodString;
|
|
27
|
+
priority: z.ZodEnum<{
|
|
28
|
+
critical: "critical";
|
|
29
|
+
high: "high";
|
|
30
|
+
low: "low";
|
|
31
|
+
medium: "medium";
|
|
32
|
+
}>;
|
|
33
|
+
depends_on: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
34
|
+
summary: z.ZodString;
|
|
35
|
+
parrallel: z.ZodDefault<z.ZodBoolean>;
|
|
36
|
+
status: z.ZodEnum<{
|
|
37
|
+
blocked: "blocked";
|
|
38
|
+
completed: "completed";
|
|
39
|
+
"in-progress": "in-progress";
|
|
40
|
+
"in-review": "in-review";
|
|
41
|
+
open: "open";
|
|
42
|
+
}>;
|
|
43
|
+
}, z.core.$strict>>>;
|
|
44
|
+
}, z.core.$strict>;
|
|
45
|
+
export type PhaseIndex = z.infer<typeof PhaseIndexSchema>;
|
|
46
|
+
//# sourceMappingURL=phase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase.d.ts","sourceRoot":"","sources":["../../src/schemas/phase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;kBAQtB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;kBAE3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// packages/skills/src/schemas/phase.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { PhaseIdSchema, PrioritySchema, StatusSchema } from "./primitives";
|
|
4
|
+
export const PhaseSchema = z.strictObject({
|
|
5
|
+
name: PhaseIdSchema,
|
|
6
|
+
title: z.string().min(1),
|
|
7
|
+
priority: PrioritySchema,
|
|
8
|
+
depends_on: z.array(PhaseIdSchema).default([]),
|
|
9
|
+
summary: z.string().min(1),
|
|
10
|
+
parrallel: z.boolean().default(false),
|
|
11
|
+
status: StatusSchema,
|
|
12
|
+
});
|
|
13
|
+
export const PhaseIndexSchema = z.strictObject({
|
|
14
|
+
phases: z.array(PhaseSchema).default([]),
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=phase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase.js","sourceRoot":"","sources":["../../src/schemas/phase.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE3E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC;IACxC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACrC,MAAM,EAAE,YAAY;CACrB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACzC,CAAC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const PlanSchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
title: z.ZodString;
|
|
5
|
+
priority: z.ZodEnum<{
|
|
6
|
+
critical: "critical";
|
|
7
|
+
high: "high";
|
|
8
|
+
low: "low";
|
|
9
|
+
medium: "medium";
|
|
10
|
+
}>;
|
|
11
|
+
depends_on: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
12
|
+
summary: z.ZodString;
|
|
13
|
+
status: z.ZodEnum<{
|
|
14
|
+
blocked: "blocked";
|
|
15
|
+
completed: "completed";
|
|
16
|
+
"in-progress": "in-progress";
|
|
17
|
+
"in-review": "in-review";
|
|
18
|
+
open: "open";
|
|
19
|
+
}>;
|
|
20
|
+
}, z.core.$strict>;
|
|
21
|
+
export type Plan = z.infer<typeof PlanSchema>;
|
|
22
|
+
export declare const PlanIndexSchema: z.ZodObject<{
|
|
23
|
+
plans: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
24
|
+
name: z.ZodString;
|
|
25
|
+
title: z.ZodString;
|
|
26
|
+
priority: z.ZodEnum<{
|
|
27
|
+
critical: "critical";
|
|
28
|
+
high: "high";
|
|
29
|
+
low: "low";
|
|
30
|
+
medium: "medium";
|
|
31
|
+
}>;
|
|
32
|
+
depends_on: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
33
|
+
summary: z.ZodString;
|
|
34
|
+
status: z.ZodEnum<{
|
|
35
|
+
blocked: "blocked";
|
|
36
|
+
completed: "completed";
|
|
37
|
+
"in-progress": "in-progress";
|
|
38
|
+
"in-review": "in-review";
|
|
39
|
+
open: "open";
|
|
40
|
+
}>;
|
|
41
|
+
}, z.core.$strict>>>;
|
|
42
|
+
}, z.core.$strict>;
|
|
43
|
+
export type PlanIndex = z.infer<typeof PlanIndexSchema>;
|
|
44
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/schemas/plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;kBAOrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;kBAE1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// packages/skills/src/schemas/plan.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { PlanIdSchema, PrioritySchema, StatusSchema } from "./primitives";
|
|
4
|
+
export const PlanSchema = z.strictObject({
|
|
5
|
+
name: PlanIdSchema,
|
|
6
|
+
title: z.string().min(1),
|
|
7
|
+
priority: PrioritySchema,
|
|
8
|
+
depends_on: z.array(PlanIdSchema).default([]),
|
|
9
|
+
summary: z.string().min(1),
|
|
10
|
+
status: StatusSchema,
|
|
11
|
+
});
|
|
12
|
+
export const PlanIndexSchema = z.strictObject({
|
|
13
|
+
plans: z.array(PlanSchema).default([]),
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/schemas/plan.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC;IACvC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,YAAY;CACrB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACvC,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/** Status folder names, in the order a task moves through them. */
|
|
3
|
+
export declare const STATUSES: readonly ["open", "in-progress", "in-review", "completed", "blocked"];
|
|
4
|
+
export declare const StatusSchema: z.ZodEnum<{
|
|
5
|
+
blocked: "blocked";
|
|
6
|
+
completed: "completed";
|
|
7
|
+
"in-progress": "in-progress";
|
|
8
|
+
"in-review": "in-review";
|
|
9
|
+
open: "open";
|
|
10
|
+
}>;
|
|
11
|
+
export type TaskStatus = z.infer<typeof StatusSchema>;
|
|
12
|
+
export declare const PRIORITIES: readonly ["critical", "high", "medium", "low"];
|
|
13
|
+
export declare const PrioritySchema: z.ZodEnum<{
|
|
14
|
+
critical: "critical";
|
|
15
|
+
high: "high";
|
|
16
|
+
low: "low";
|
|
17
|
+
medium: "medium";
|
|
18
|
+
}>;
|
|
19
|
+
export type TaskPriority = z.infer<typeof PrioritySchema>;
|
|
20
|
+
/** Branch-name prefixes for a task worked in its own git worktree. */
|
|
21
|
+
export declare const WORKTREE_TYPES: readonly ["feature", "fix", "refactor", "chore", "docs", "snapshot", "demo", "experiment"];
|
|
22
|
+
export declare const WorktreeTypeSchema: z.ZodEnum<{
|
|
23
|
+
chore: "chore";
|
|
24
|
+
demo: "demo";
|
|
25
|
+
docs: "docs";
|
|
26
|
+
experiment: "experiment";
|
|
27
|
+
feature: "feature";
|
|
28
|
+
fix: "fix";
|
|
29
|
+
refactor: "refactor";
|
|
30
|
+
snapshot: "snapshot";
|
|
31
|
+
}>;
|
|
32
|
+
export type WorktreeType = z.infer<typeof WorktreeTypeSchema>;
|
|
33
|
+
/** A lowercase, hyphen-separated name usable verbatim as one directory segment. */
|
|
34
|
+
export declare const PlanIdSchema: z.ZodString;
|
|
35
|
+
export declare const PhaseIdSchema: z.ZodString;
|
|
36
|
+
/** A task id: the configured prefix, a hyphen, then digits — e.g. `TASK-006`. */
|
|
37
|
+
export declare const TaskIdSchema: z.ZodString;
|
|
38
|
+
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/schemas/primitives.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,mEAAmE;AACnE,eAAO,MAAM,QAAQ,YAAI,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AAC9F,eAAO,MAAM,YAAY;;;;;;EAAmB,CAAC;AAC7C,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEtD,eAAO,MAAM,UAAU,YAAI,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AACzE,eAAO,MAAM,cAAc;;;;;EAAqB,CAAC;AACjD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,sEAAsE;AACtE,eAAO,MAAM,cAAc,YACzB,SAAS,EACT,KAAK,EACL,UAAU,EACV,OAAO,EACP,MAAM,EACN,UAAU,EACV,MAAM,EACN,YAAY,CACJ,CAAC;AACX,eAAO,MAAM,kBAAkB;;;;;;;;;EAAyB,CAAC;AACzD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,mFAAmF;AACnF,eAAO,MAAM,YAAY,aAE2D,CAAC;AAErF,eAAO,MAAM,aAAa,aAGmF,CAAC;AAE9G,iFAAiF;AACjF,eAAO,MAAM,YAAY,aAE4E,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// packages/skills/src/schemas/primitives.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { DECISIONS_DIR } from "./decision";
|
|
4
|
+
/** Status folder names, in the order a task moves through them. */
|
|
5
|
+
export const STATUSES = ["open", "in-progress", "in-review", "completed", "blocked"];
|
|
6
|
+
export const StatusSchema = z.enum(STATUSES);
|
|
7
|
+
export const PRIORITIES = ["critical", "high", "medium", "low"];
|
|
8
|
+
export const PrioritySchema = z.enum(PRIORITIES);
|
|
9
|
+
/** Branch-name prefixes for a task worked in its own git worktree. */
|
|
10
|
+
export const WORKTREE_TYPES = [
|
|
11
|
+
"feature",
|
|
12
|
+
"fix",
|
|
13
|
+
"refactor",
|
|
14
|
+
"chore",
|
|
15
|
+
"docs",
|
|
16
|
+
"snapshot",
|
|
17
|
+
"demo",
|
|
18
|
+
"experiment",
|
|
19
|
+
];
|
|
20
|
+
export const WorktreeTypeSchema = z.enum(WORKTREE_TYPES);
|
|
21
|
+
/** A lowercase, hyphen-separated name usable verbatim as one directory segment. */
|
|
22
|
+
export const PlanIdSchema = z
|
|
23
|
+
.string()
|
|
24
|
+
.regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "must be a lowercase, hyphen-separated slug");
|
|
25
|
+
export const PhaseIdSchema = z
|
|
26
|
+
.string()
|
|
27
|
+
.regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "must be a lowercase, hyphen-separated slug")
|
|
28
|
+
.refine((name) => name !== DECISIONS_DIR, `"${DECISIONS_DIR}" is the folder a plan keeps its decisions in`);
|
|
29
|
+
/** A task id: the configured prefix, a hyphen, then digits — e.g. `TASK-006`. */
|
|
30
|
+
export const TaskIdSchema = z
|
|
31
|
+
.string()
|
|
32
|
+
.regex(/^[A-Za-z][A-Za-z0-9]*-\d+$/, 'must look like "TASK-006" — a prefix, a hyphen, then digits');
|
|
33
|
+
//# sourceMappingURL=primitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/schemas/primitives.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,mEAAmE;AACnE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AAC9F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAG7C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAGjD,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,KAAK;IACL,UAAU;IACV,OAAO;IACP,MAAM;IACN,UAAU;IACV,MAAM;IACN,YAAY;CACJ,CAAC;AACX,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAGzD,mFAAmF;AACnF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,4BAA4B,EAAE,4CAA4C,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,KAAK,CAAC,4BAA4B,EAAE,4CAA4C,CAAC;KACjF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,EAAE,IAAI,aAAa,+CAA+C,CAAC,CAAC;AAE9G,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,4BAA4B,EAAE,6DAA6D,CAAC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const TaskSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodString;
|
|
4
|
+
title: z.ZodString;
|
|
5
|
+
package: z.ZodString;
|
|
6
|
+
priority: z.ZodEnum<{
|
|
7
|
+
critical: "critical";
|
|
8
|
+
high: "high";
|
|
9
|
+
low: "low";
|
|
10
|
+
medium: "medium";
|
|
11
|
+
}>;
|
|
12
|
+
depends_on: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
13
|
+
summary: z.ZodString;
|
|
14
|
+
complexity: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
worktree: z.ZodLiteral<true>;
|
|
16
|
+
worktree_type: z.ZodDefault<z.ZodEnum<{
|
|
17
|
+
chore: "chore";
|
|
18
|
+
demo: "demo";
|
|
19
|
+
docs: "docs";
|
|
20
|
+
experiment: "experiment";
|
|
21
|
+
feature: "feature";
|
|
22
|
+
fix: "fix";
|
|
23
|
+
refactor: "refactor";
|
|
24
|
+
snapshot: "snapshot";
|
|
25
|
+
}>>;
|
|
26
|
+
status: z.ZodEnum<{
|
|
27
|
+
blocked: "blocked";
|
|
28
|
+
completed: "completed";
|
|
29
|
+
"in-progress": "in-progress";
|
|
30
|
+
"in-review": "in-review";
|
|
31
|
+
open: "open";
|
|
32
|
+
}>;
|
|
33
|
+
}, z.core.$strict>;
|
|
34
|
+
export type Task = z.infer<typeof TaskSchema>;
|
|
35
|
+
export declare const TaskIndexSchema: z.ZodObject<{
|
|
36
|
+
tasks: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
37
|
+
id: z.ZodString;
|
|
38
|
+
title: z.ZodString;
|
|
39
|
+
package: z.ZodString;
|
|
40
|
+
priority: z.ZodEnum<{
|
|
41
|
+
critical: "critical";
|
|
42
|
+
high: "high";
|
|
43
|
+
low: "low";
|
|
44
|
+
medium: "medium";
|
|
45
|
+
}>;
|
|
46
|
+
depends_on: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
47
|
+
summary: z.ZodString;
|
|
48
|
+
complexity: z.ZodOptional<z.ZodNumber>;
|
|
49
|
+
worktree: z.ZodLiteral<true>;
|
|
50
|
+
worktree_type: z.ZodDefault<z.ZodEnum<{
|
|
51
|
+
chore: "chore";
|
|
52
|
+
demo: "demo";
|
|
53
|
+
docs: "docs";
|
|
54
|
+
experiment: "experiment";
|
|
55
|
+
feature: "feature";
|
|
56
|
+
fix: "fix";
|
|
57
|
+
refactor: "refactor";
|
|
58
|
+
snapshot: "snapshot";
|
|
59
|
+
}>>;
|
|
60
|
+
status: z.ZodEnum<{
|
|
61
|
+
blocked: "blocked";
|
|
62
|
+
completed: "completed";
|
|
63
|
+
"in-progress": "in-progress";
|
|
64
|
+
"in-review": "in-review";
|
|
65
|
+
open: "open";
|
|
66
|
+
}>;
|
|
67
|
+
}, z.core.$strict>>>;
|
|
68
|
+
}, z.core.$strict>;
|
|
69
|
+
export type TaskIndex = z.infer<typeof TaskIndexSchema>;
|
|
70
|
+
//# sourceMappingURL=task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/schemas/task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAWrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// packages/skills/src/schemas/task.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { TaskIdSchema, PrioritySchema, WorktreeTypeSchema, StatusSchema } from "./primitives";
|
|
4
|
+
export const TaskSchema = z.strictObject({
|
|
5
|
+
id: TaskIdSchema,
|
|
6
|
+
title: z.string().min(1),
|
|
7
|
+
package: z.string().min(1),
|
|
8
|
+
priority: PrioritySchema,
|
|
9
|
+
depends_on: z.array(TaskIdSchema).default([]),
|
|
10
|
+
summary: z.string().min(1),
|
|
11
|
+
complexity: z.number().int().min(1).max(5).optional(),
|
|
12
|
+
worktree: z.literal(true),
|
|
13
|
+
worktree_type: WorktreeTypeSchema.default("feature"),
|
|
14
|
+
status: StatusSchema,
|
|
15
|
+
});
|
|
16
|
+
export const TaskIndexSchema = z.strictObject({
|
|
17
|
+
tasks: z.array(TaskSchema).default([]),
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/schemas/task.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC;IACvC,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrD,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACzB,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC;IACpD,MAAM,EAAE,YAAY;CACrB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACvC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/** One entry of `vocabulary.md`: the word to use, what it means, and the words it replaces. */
|
|
3
|
+
export declare const TermSchema: z.ZodObject<{
|
|
4
|
+
term: z.ZodString;
|
|
5
|
+
definition: z.ZodString;
|
|
6
|
+
avoid: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
7
|
+
}, z.core.$strict>;
|
|
8
|
+
export type Term = z.infer<typeof TermSchema>;
|
|
9
|
+
export declare const VocabularySchema: z.ZodObject<{
|
|
10
|
+
terms: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
11
|
+
term: z.ZodString;
|
|
12
|
+
definition: z.ZodString;
|
|
13
|
+
avoid: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
14
|
+
}, z.core.$strict>>>;
|
|
15
|
+
}, z.core.$strict>;
|
|
16
|
+
export type Vocabulary = z.infer<typeof VocabularySchema>;
|
|
17
|
+
//# sourceMappingURL=term.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"term.d.ts","sourceRoot":"","sources":["../../src/schemas/term.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,+FAA+F;AAC/F,eAAO,MAAM,UAAU;;;;kBAarB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,eAAO,MAAM,gBAAgB;;;;;;kBAE3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// packages/skills/src/schemas/term.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
/** One line of text that cannot be mistaken for a Markdown heading. */
|
|
4
|
+
const TermNameSchema = z
|
|
5
|
+
.string()
|
|
6
|
+
.regex(/^[^\s#][^\n]*$/, "must be a single line that does not start with # or a space");
|
|
7
|
+
/** One entry of `vocabulary.md`: the word to use, what it means, and the words it replaces. */
|
|
8
|
+
export const TermSchema = z.strictObject({
|
|
9
|
+
term: TermNameSchema,
|
|
10
|
+
definition: z
|
|
11
|
+
.string()
|
|
12
|
+
.min(1)
|
|
13
|
+
.refine((text) => !text.split("\n").some((line) => line.startsWith("#") || line.startsWith("_Avoid_:")), "must not contain a line starting with # or _Avoid_:"),
|
|
14
|
+
/** Words that mean the same thing and must not be used in its place */
|
|
15
|
+
avoid: z
|
|
16
|
+
.array(TermNameSchema.refine((word) => !word.includes(","), "must not contain a comma"))
|
|
17
|
+
.default([]),
|
|
18
|
+
});
|
|
19
|
+
export const VocabularySchema = z.strictObject({
|
|
20
|
+
terms: z.array(TermSchema).default([]),
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=term.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"term.js","sourceRoot":"","sources":["../../src/schemas/term.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,uEAAuE;AACvE,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,EAAE;KACR,KAAK,CAAC,gBAAgB,EAAE,6DAA6D,CAAC,CAAC;AAE1F,+FAA+F;AAC/F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC;IACvC,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAC/F,qDAAqD,CACtD;IACH,uEAAuE;IACvE,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,0BAA0B,CAAC,CAAC;SACvF,OAAO,CAAC,EAAE,CAAC;CACf,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACvC,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/** One rejected field, as `field` reads in the source file. */
|
|
3
|
+
export interface FileValidationIssue {
|
|
4
|
+
field: string;
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Thrown by `parseFile` when a file on disk does not match its schema.
|
|
9
|
+
* Carries the path that was read so a caller can report it without tracking it.
|
|
10
|
+
*/
|
|
11
|
+
export declare class FileValidationError extends Error {
|
|
12
|
+
readonly file: string;
|
|
13
|
+
readonly issues: FileValidationIssue[];
|
|
14
|
+
constructor(file: string, issues: FileValidationIssue[]);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Checks data read from a file against its schema.
|
|
18
|
+
* Every file read from disk goes through here before it is handed on.
|
|
19
|
+
*
|
|
20
|
+
* @param file path of the file the data came from, used in the error message
|
|
21
|
+
* @throws FileValidationError naming the file and every field that failed
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseFile<S extends z.ZodType>(schema: S, file: string, data: unknown): z.output<S>;
|
|
24
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/schemas/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAEvC,YAAY,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAMtD;CACF;AAQD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAC3C,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,GACZ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAUb"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thrown by `parseFile` when a file on disk does not match its schema.
|
|
3
|
+
* Carries the path that was read so a caller can report it without tracking it.
|
|
4
|
+
*/
|
|
5
|
+
export class FileValidationError extends Error {
|
|
6
|
+
file;
|
|
7
|
+
issues;
|
|
8
|
+
constructor(file, issues) {
|
|
9
|
+
const detail = issues.map((i) => ` ${i.field}: ${i.message}`).join("\n");
|
|
10
|
+
super(`${file} does not match its schema:\n${detail}`);
|
|
11
|
+
this.name = "FileValidationError";
|
|
12
|
+
this.file = file;
|
|
13
|
+
this.issues = issues;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** Turns a zod path into the dotted field name a reader can find in the file. */
|
|
17
|
+
function fieldName(path) {
|
|
18
|
+
if (path.length === 0)
|
|
19
|
+
return "(whole file)";
|
|
20
|
+
return path.map((segment) => String(segment)).join(".");
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Checks data read from a file against its schema.
|
|
24
|
+
* Every file read from disk goes through here before it is handed on.
|
|
25
|
+
*
|
|
26
|
+
* @param file path of the file the data came from, used in the error message
|
|
27
|
+
* @throws FileValidationError naming the file and every field that failed
|
|
28
|
+
*/
|
|
29
|
+
export function parseFile(schema, file, data) {
|
|
30
|
+
const result = schema.safeParse(data);
|
|
31
|
+
if (result.success)
|
|
32
|
+
return result.data;
|
|
33
|
+
const issues = result.error.issues.map((issue) => ({
|
|
34
|
+
field: fieldName(issue.path),
|
|
35
|
+
message: issue.message,
|
|
36
|
+
}));
|
|
37
|
+
throw new FileValidationError(file, issues);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/schemas/validation.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,CAAS;IACb,MAAM,CAAwB;IAEvC,YAAY,IAAY,EAAE,MAA6B;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,KAAK,CAAC,GAAG,IAAI,gCAAgC,MAAM,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,iFAAiF;AACjF,SAAS,SAAS,CAAC,IAAgC;IACjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,MAAS,EACT,IAAY,EACZ,IAAa;IAEb,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAC,CAAC;IAEJ,MAAM,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-decision.d.ts","sourceRoot":"","sources":["../../../src/task-manager/hooks/add-decision.ts"],"names":[],"mappings":"AAMA,wBAAsB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// packages/skills/src/task-manager/hooks/add-decision.ts
|
|
2
|
+
import { childDirFor, locateEntryOfType } from "../../filetree";
|
|
3
|
+
import { addDecision } from "../../decisions";
|
|
4
|
+
import { DECISION_STATUSES } from "../../schemas";
|
|
5
|
+
import { oneOf, printJson, readFlag, readStdin, requireFlag, resolveRoot } from "../../hooks";
|
|
6
|
+
export async function run(argv) {
|
|
7
|
+
const root = await resolveRoot(argv);
|
|
8
|
+
const plan = await locateEntryOfType(root, requireFlag(argv, "--in", "auth-rework"), "plan");
|
|
9
|
+
const title = requireFlag(argv, "--title", '"Use JWT for sessions"');
|
|
10
|
+
const status = oneOf(readFlag(argv, "--status") ?? "accepted", DECISION_STATUSES, "--status");
|
|
11
|
+
const supersedes = readFlag(argv, "--supersedes");
|
|
12
|
+
const body = (await readStdin()).trim();
|
|
13
|
+
if (body === "") {
|
|
14
|
+
throw new Error("the decision text is read from stdin and none was piped in");
|
|
15
|
+
}
|
|
16
|
+
const decision = await addDecision(childDirFor(plan.dir, plan.name), { title, status, supersedes, body });
|
|
17
|
+
printJson({ plan: plan.name, ...decision }, argv);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=add-decision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-decision.js","sourceRoot":"","sources":["../../../src/task-manager/hooks/add-decision.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9F,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAE7F,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,UAAU,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAC9F,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAElD,MAAM,IAAI,GAAG,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1G,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/task-manager/hooks/cleanup.ts"],"names":[],"mappings":"AAUA,wBAAsB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhE"}
|