skill-flow 1.0.2 → 1.0.4

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 (57) hide show
  1. package/README.md +62 -23
  2. package/README.zh.md +63 -25
  3. package/dist/cli.js +13 -39
  4. package/dist/cli.js.map +1 -1
  5. package/dist/domain/types.d.ts +12 -1
  6. package/dist/services/doctor-service.js +1 -1
  7. package/dist/services/doctor-service.js.map +1 -1
  8. package/dist/services/skill-flow.d.ts +16 -13
  9. package/dist/services/skill-flow.js +158 -5
  10. package/dist/services/skill-flow.js.map +1 -1
  11. package/dist/services/source-service.d.ts +11 -1
  12. package/dist/services/source-service.js +60 -18
  13. package/dist/services/source-service.js.map +1 -1
  14. package/dist/services/workflow-service.d.ts +2 -2
  15. package/dist/services/workflow-service.js +17 -4
  16. package/dist/services/workflow-service.js.map +1 -1
  17. package/dist/services/workspace-bootstrap-service.d.ts +25 -0
  18. package/dist/services/workspace-bootstrap-service.js +148 -0
  19. package/dist/services/workspace-bootstrap-service.js.map +1 -0
  20. package/dist/state/store.js +1 -0
  21. package/dist/state/store.js.map +1 -1
  22. package/dist/tests/skill-flow.test.js +1458 -0
  23. package/dist/tests/skill-flow.test.js.map +1 -1
  24. package/dist/tui/config-app.d.ts +3 -0
  25. package/dist/tui/config-app.js +61 -1
  26. package/dist/tui/config-app.js.map +1 -1
  27. package/dist/tui/find-app.d.ts +1 -1
  28. package/dist/tui/find-app.js +36 -4
  29. package/dist/tui/find-app.js.map +1 -1
  30. package/dist/utils/format.js +1 -1
  31. package/dist/utils/format.js.map +1 -1
  32. package/dist/utils/naming.d.ts +1 -0
  33. package/dist/utils/naming.js +7 -1
  34. package/dist/utils/naming.js.map +1 -1
  35. package/dist/utils/source-id.js +4 -0
  36. package/dist/utils/source-id.js.map +1 -1
  37. package/package.json +10 -1
  38. package/.gstack/browse-network.log +0 -1
  39. package/.gstack/browse.json +0 -7
  40. package/.gstack/qa-reports/base-branch.txt +0 -1
  41. package/.gstack/qa-reports/qa-report-skill-flow-cli-2026-03-22.md +0 -159
  42. package/.gstack/qa-reports/qa-report-skill-manager-2026-03-22.md +0 -60
  43. package/docs/DESIGN.md +0 -407
  44. package/docs/PRD/PRD-1.0.0.md +0 -1862
  45. package/docs/PRD/renew/PRD-0.0.0.md +0 -26
  46. package/docs/PRD/renew/PRD-0.0.1.md +0 -408
  47. package/docs/PRD/renew/PRD-0.0.2.md +0 -705
  48. package/docs/PRD/renew/PRD-0.0.3.md +0 -740
  49. package/docs/PRD/renew/PRD-0.0.4.md +0 -1494
  50. package/docs/README.md +0 -242
  51. package/docs/plan/PLAN_v1.0.0.md +0 -663
  52. package/docs/plan/PLAN_v1.0.1.md +0 -845
  53. package/docs/refrences/README.md +0 -9
  54. package/docs/refrences/agent-skill-paths.md +0 -274
  55. package/docs/refrences/config-state-reconciliation.md +0 -199
  56. package/docs/refrences/naming-dedupe-warning-rules.md +0 -482
  57. package/img/img-1.jpg +0 -0
@@ -1,15 +1,39 @@
1
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useMemo, useState } from "react";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useState } from "react";
3
3
  import { Box, Text, useApp, useInput, useStdout } from "ink";
4
4
  import { buildFindCommand } from "../utils/find-command.js";
5
5
  export function FindApp({ app, query, candidates }) {
6
6
  const { exit } = useApp();
7
7
  const { stdout } = useStdout();
8
+ const [loadedCandidates, setLoadedCandidates] = useState(candidates);
9
+ const [loadError, setLoadError] = useState();
10
+ const [loadWarnings, setLoadWarnings] = useState([]);
8
11
  const [cursor, setCursor] = useState(0);
9
12
  const [state, setState] = useState({ phase: "list" });
10
- const visibleCandidates = useMemo(() => candidates.slice(0, 30), [candidates]);
13
+ const visibleCandidates = useMemo(() => (loadedCandidates ?? []).slice(0, 30), [loadedCandidates]);
11
14
  const selected = visibleCandidates[cursor];
12
15
  const columns = getColumns(stdout?.columns ?? 100);
16
+ useEffect(() => {
17
+ if (candidates) {
18
+ setLoadedCandidates(candidates);
19
+ return;
20
+ }
21
+ let cancelled = false;
22
+ void app.findSkills(query).then((result) => {
23
+ if (cancelled) {
24
+ return;
25
+ }
26
+ if (!result.ok) {
27
+ setLoadError(result.errors[0]?.message ?? "Search failed.");
28
+ return;
29
+ }
30
+ setLoadedCandidates(result.data.candidates);
31
+ setLoadWarnings(result.warnings.map((warning) => warning.message));
32
+ });
33
+ return () => {
34
+ cancelled = true;
35
+ };
36
+ }, [app, candidates, query]);
13
37
  useInput((input, key) => {
14
38
  if (key.escape || input === "q") {
15
39
  if (state.phase === "confirm" || state.phase === "error") {
@@ -64,10 +88,18 @@ export function FindApp({ app, query, candidates }) {
64
88
  });
65
89
  }
66
90
  });
91
+ if (!loadedCandidates && !loadError) {
92
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: "Find Skills" }), _jsxs(Text, { color: "gray", children: ["query: ", query] }), _jsx(Text, { color: "yellow", children: "Searching local, Git catalogs, and ClawHub..." }), _jsx(Text, { color: "gray", children: "Press q or Esc to exit." })] }));
93
+ }
94
+ if (loadError) {
95
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: "Find Skills" }), _jsx(Text, { color: "red", children: loadError }), _jsx(Text, { color: "gray", children: "Press q or Esc to exit." })] }));
96
+ }
67
97
  if (visibleCandidates.length === 0) {
68
98
  return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: ["No matching skills found for \"", query, "\"."] }), _jsx(Text, { color: "gray", children: "Press q or Esc to exit." })] }));
69
99
  }
70
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: "Find Skills" }), _jsxs(Text, { color: "gray", children: ["query: ", query, " \u00B7 results: ", visibleCandidates.length, candidates.length > visibleCandidates.length ? ` / ${candidates.length}` : ""] }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { bold: true, children: pad("No.", columns.index) }), _jsx(Text, { bold: true, children: pad("Skill", columns.name) }), _jsx(Text, { bold: true, children: "Repository" })] }), visibleCandidates.map((candidate, index) => {
100
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: "Find Skills" }), _jsxs(Text, { color: "gray", children: ["query: ", query, " \u00B7 results: ", visibleCandidates.length, (loadedCandidates?.length ?? 0) > visibleCandidates.length
101
+ ? ` / ${loadedCandidates?.length ?? 0}`
102
+ : ""] }), loadWarnings.map((warning) => (_jsxs(Text, { color: "yellow", children: ["warning: ", warning] }, warning))), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { bold: true, children: pad("No.", columns.index) }), _jsx(Text, { bold: true, children: pad("Skill", columns.name) }), _jsx(Text, { bold: true, children: "Repository" })] }), visibleCandidates.map((candidate, index) => {
71
103
  const active = index === cursor;
72
104
  return (_jsx(Box, { children: _jsxs(Text, { ...(active ? { color: "cyan" } : {}), children: [pad(`${index + 1}.`, columns.index), pad(candidate.installed ? `${candidate.title} *` : candidate.title, columns.name), candidate.sourceLabel] }) }, candidate.id));
73
105
  }), selected ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { children: ["selected: ", _jsx(Text, { color: "cyan", children: selected.title }), " \u00B7 ", selected.sourceLabel] }), state.phase === "list" ? (_jsx(Text, { color: "gray", children: "Enter preview add command \u00B7 Up/Down move \u00B7 Esc/q exit" })) : null, state.phase === "confirm" ? (_jsxs(_Fragment, { children: [_jsxs(Text, { children: ["next: ", buildFindCommand(selected) ?? "already installed"] }), _jsx(Text, { color: "gray", children: "Enter install \u00B7 Esc back" })] })) : null, state.phase === "installing" ? _jsx(Text, { color: "yellow", children: "Installing..." }) : null, state.phase === "done" ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: "green", children: state.message }), state.warnings.map((warning) => (_jsxs(Text, { color: "yellow", children: ["warning: ", warning] }, warning))), _jsx(Text, { color: "gray", children: "Press Enter, q, or Esc to exit." })] })) : null, state.phase === "error" ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: "red", children: state.message }), _jsx(Text, { color: "gray", children: "Esc back" })] })) : null] })) : null] }));
@@ -1 +1 @@
1
- {"version":3,"file":"find-app.js","sourceRoot":"","sources":["../../src/tui/find-app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-app.js","sourceRoot":"","sources":["../../src/tui/find-app.tsx"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { formatGroupLabel } from "./naming.js";
4
4
  export function formatWorkflowList(summaries) {
5
5
  if (summaries.length === 0) {
6
6
  return [
7
- "No workflow groups yet",
7
+ "No skills groups yet",
8
8
  "Add a source to discover a grouped set of related skills.",
9
9
  ].join("\n");
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,UAAU,kBAAkB,CAAC,SAA4B;IAC7D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,wBAAwB;YACxB,2DAA2D;SAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CACvC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EACrD,CAAC,CACF,CAAC;QACF,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,WAAW,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,UAAU,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,YAAY,OAAO,CAAC,iBAAiB,WAAW,MAAM,EAAE,CAAC;IACjJ,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAA2B;IACtD,OAAO,OAAO,CAAC,MAAM,CAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAC5D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA2B;IAC7D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;SACrD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA4B;IAC3D,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS;QAC1B,CAAC,CAAC,UAAU,KAAK,CAAC,SAAS,EAAE;QAC7B,CAAC,CAAC,KAAK,CAAC,MAAM;YACZ,CAAC,CAAC,UAAU,KAAK,CAAC,MAAM,EAAE;YAC1B,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACrH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAA4B;IAChE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,OAAO,UAAU;SACd,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO;YACL,GAAG,KAAK,GAAG,CAAC,KAAK,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE;YAClG,SAAS,CAAC,WAAW;YACrB,GAAG,SAAS,CAAC,WAAW,GAAG,QAAQ,EAAE;YACrC,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,yBAAyB;SACnD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,UAAU,kBAAkB,CAAC,SAA4B;IAC7D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,sBAAsB;YACtB,2DAA2D;SAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CACvC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EACrD,CAAC,CACF,CAAC;QACF,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,WAAW,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,UAAU,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,YAAY,OAAO,CAAC,iBAAiB,WAAW,MAAM,EAAE,CAAC;IACjJ,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAA2B;IACtD,OAAO,OAAO,CAAC,MAAM,CAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAC5D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA2B;IAC7D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;SACrD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA4B;IAC3D,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS;QAC1B,CAAC,CAAC,UAAU,KAAK,CAAC,SAAS,EAAE;QAC7B,CAAC,CAAC,KAAK,CAAC,MAAM;YACZ,CAAC,CAAC,UAAU,KAAK,CAAC,MAAM,EAAE;YAC1B,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACrH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAA4B;IAChE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,OAAO,UAAU;SACd,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO;YACL,GAAG,KAAK,GAAG,CAAC,KAAK,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE;YAClG,SAAS,CAAC,WAAW;YACrB,GAAG,SAAS,CAAC,WAAW,GAAG,QAAQ,EAAE;YACrC,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,yBAAyB;SACnD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC"}
@@ -2,6 +2,7 @@ type SourceLike = {
2
2
  id: string;
3
3
  locator: string;
4
4
  displayName: string;
5
+ kind?: "local" | "git" | "clawhub";
5
6
  };
6
7
  type ProjectedSkillInput = {
7
8
  leafId: string;
@@ -33,11 +33,17 @@ export function parseGitHubRepo(locator) {
33
33
  return null;
34
34
  }
35
35
  export function formatGroupLabel(source) {
36
+ if (source.kind === "local") {
37
+ return `${source.displayName}@local`;
38
+ }
39
+ if (source.kind === "clawhub") {
40
+ return `${source.displayName}@clawhub`;
41
+ }
36
42
  const githubRepo = parseGitHubRepo(source.locator);
37
43
  if (!githubRepo) {
38
44
  return source.displayName;
39
45
  }
40
- return `${source.displayName}(@${githubRepo.owner})`;
46
+ return `${source.displayName}@${githubRepo.owner}`;
41
47
  }
42
48
  export function formatGroupRef(source) {
43
49
  return `${formatGroupLabel(source)} [${source.id}]`;
@@ -1 +1 @@
1
- {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,10 @@ export function deriveSourceId(locator) {
40
40
  if (githubRepo) {
41
41
  return slugify(`${githubRepo.owner}-${githubRepo.repo}`);
42
42
  }
43
+ const trimmed = locator.replace(/\/+$/, "");
44
+ if (path.isAbsolute(trimmed)) {
45
+ return slugify(path.basename(trimmed) || locator);
46
+ }
43
47
  return slugify(deriveDisplayName(locator) || locator);
44
48
  }
45
49
  //# sourceMappingURL=source-id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source-id.js","sourceRoot":"","sources":["../../src/utils/source-id.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC;IACrE,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,WAAW,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"source-id.js","sourceRoot":"","sources":["../../src/utils/source-id.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC;IACrE,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,WAAW,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC;AACxD,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,18 @@
1
1
  {
2
2
  "name": "skill-flow",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Workflow-first management for AI agent skills. Group, project, and sync skills across multiple agents with explicit state tracking.",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",
7
7
  "bin": {
8
8
  "skill-flow": "dist/cli.js"
9
9
  },
10
+ "files": [
11
+ "dist",
12
+ "README.md",
13
+ "README.zh.md",
14
+ "LICENSE"
15
+ ],
10
16
  "scripts": {
11
17
  "build": "tsc -p tsconfig.json",
12
18
  "dev": "tsx src/cli.tsx",
@@ -35,6 +41,9 @@
35
41
  "url": "https://github.com/VintLin/skill-flow/issues"
36
42
  },
37
43
  "homepage": "https://github.com/VintLin/skill-flow#readme",
44
+ "engines": {
45
+ "node": ">=20"
46
+ },
38
47
  "dependencies": {
39
48
  "commander": "^14.0.3",
40
49
  "ink": "^6.8.0",
@@ -1 +0,0 @@
1
- [2026-03-21T10:24:32.733Z] GET file:///tmp/gstack-sketch-skill-flow.html → 200 (5ms, 7267B)
@@ -1,7 +0,0 @@
1
- {
2
- "pid": 51199,
3
- "port": 30333,
4
- "token": "8770c4f1-ad31-4eaa-94c9-561a491cdbb2",
5
- "startedAt": "2026-03-21T10:24:32.663Z",
6
- "serverPath": "/Users/Vint/.cc-switch/skills/browse/src/server.ts"
7
- }
@@ -1 +0,0 @@
1
- main
@@ -1,159 +0,0 @@
1
- # QA Report
2
-
3
- Date: 2026-03-22
4
- Target: `skill-flow` CLI v1.0.1
5
- Mode: full functional regression
6
- Base branch: `main`
7
- Baseline commit: `c21868e`
8
- Final status: `DONE_WITH_CONCERNS`
9
-
10
- ## Summary
11
-
12
- - Automated baseline passed: `npm run build`, `npm test` (`49 passed`)
13
- - Verified manually:
14
- - Git add with `--path`
15
- - `list`
16
- - `update --all`
17
- - `uninstall`
18
- - GitHub tree URL add
19
- - ClawHub add / update / uninstall
20
- - Blocking issue found:
21
- - `find` / `search` can hang for 15s+ on cold start because built-in catalog search waits on many remote Git repos
22
-
23
- ## Health Score
24
-
25
- - Baseline: 82
26
- - Final: 82
27
-
28
- Rationale:
29
- - Functional: mostly works
30
- - Performance: materially degraded for `find`
31
- - Reliability: build/tests clean, but discovery cold start is not ship-ready
32
-
33
- ## Tested Flows
34
-
35
- ### 1. Git add with path filtering
36
-
37
- Command pattern:
38
-
39
- ```bash
40
- node dist/cli.js add <local-repo> --path skills/find-skills
41
- node dist/cli.js list
42
- node dist/cli.js update --all
43
- node dist/cli.js uninstall repo
44
- ```
45
-
46
- Observed:
47
- - add succeeded
48
- - only one skill was registered
49
- - list/update/uninstall all behaved correctly
50
-
51
- ### 2. GitHub tree URL add
52
-
53
- Command:
54
-
55
- ```bash
56
- node dist/cli.js add https://github.com/vercel-labs/skills/tree/main/skills/find-skills
57
- ```
58
-
59
- Observed:
60
- - succeeded
61
- - installed as repo-level source `vercel-labs-skills`
62
- - leaf count was `1`
63
- - runtime was about `7.76s`
64
-
65
- ### 3. ClawHub lifecycle
66
-
67
- Command pattern:
68
-
69
- ```bash
70
- node dist/cli.js add clawhub:find-skills-skill
71
- node dist/cli.js update --all
72
- node dist/cli.js list
73
- node dist/cli.js uninstall clawhub-find-skills-skill
74
- ```
75
-
76
- Observed:
77
- - add/update/uninstall all succeeded
78
- - `list` reported the source as `PARTIAL` because of a metadata warning:
79
- - `name should match parent directory name 'find-skills-skill'`
80
-
81
- Assessment:
82
- - functional flow passes
83
- - warning is noisy but not a blocker
84
-
85
- ## Findings
86
-
87
- ### ISSUE-001
88
-
89
- - Severity: critical
90
- - Category: performance / functional
91
- - Title: `find` does not complete promptly on cold start
92
- - Status: deferred
93
-
94
- What happens:
95
- - `find` / `search` attempts to search the full built-in Git catalog set
96
- - on a fresh state root, many built-in repos are not cached
97
- - command can remain blocked for 15s+ even when a local result already exists
98
- - `--json` has the same issue
99
-
100
- Repro:
101
-
102
- ```bash
103
- export SKILL_FLOW_STATE_ROOT="$(mktemp -d)/state"
104
- node dist/cli.js add <local-repo> --path skills/find-skills
105
- perl -e 'alarm shift; exec @ARGV' 15 node dist/cli.js find find
106
- ```
107
-
108
- Observed output before timeout:
109
-
110
- ```text
111
- 1. find-skills local installed
112
- Find useful skills quickly.
113
- repo · skills/find-skills
114
- next: already installed
115
-
116
- 2. Using Skills builtin-git
117
- ...
118
- warning: Unable to refresh built-in source 'https://github.com/anthropics/skills.git': Error: Built-in source 'https://github.com/anthropics/skills.git' timed out.
119
- ...
120
- time: command terminated abnormally
121
- real 15.02
122
- ```
123
-
124
- Impact:
125
- - makes `find` feel hung
126
- - especially bad on first use or slow network
127
- - blocks the main new v1.0.1 discovery path
128
-
129
- Recommendation:
130
- - redesign built-in catalog search so it does not depend on cloning every remote repo during request time
131
- - acceptable solutions include a prebuilt index, explicit catalog sync step, or a lightweight remote metadata search path
132
-
133
- ### ISSUE-002
134
-
135
- - Severity: medium
136
- - Category: UX
137
- - Title: ClawHub install shows as `PARTIAL` immediately after successful add
138
- - Status: deferred
139
-
140
- Observed:
141
-
142
- ```text
143
- find-skills-skill PARTIAL 1 skills 0 targets, 1 warnings
144
- warning: .: name should match parent directory name 'find-skills-skill'
145
- ```
146
-
147
- Impact:
148
- - user sees warning/partial state on a successful install
149
- - creates uncertainty about whether the source is healthy
150
-
151
- ## Ship Readiness
152
-
153
- - `add`, `update`, and `uninstall` are in good shape
154
- - `find/search` is functionally correct in some cases but not performance-safe enough for cold-start use
155
- - v1.0.1 is not fully ship-ready if discovery is considered a headline feature
156
-
157
- ## PR Summary
158
-
159
- QA found 2 issues, fixed 0, health score 82 -> 82.
@@ -1,60 +0,0 @@
1
- # QA Report: skill-flow
2
-
3
- Date: 2026-03-22
4
- Mode: full CLI QA
5
- Scope: build, unit tests, empty-state CLI flows, add/apply/update/uninstall end-to-end flow, interactive config smoke check
6
-
7
- ## Coverage
8
-
9
- - `npm test`
10
- - `npm run build`
11
- - `node dist/cli.js --help`
12
- - Empty state:
13
- - `list`
14
- - `doctor`
15
- - `config`
16
- - `uninstall missing`
17
- - End-to-end fixture workflow:
18
- - `add <git-source>`
19
- - `list`
20
- - `doctor`
21
- - `applyDraft(...)` through app service with real state root + target roots
22
- - `update --all` after upstream repo change
23
- - `uninstall <sourceId>`
24
-
25
- ## Findings
26
-
27
- ### ISSUE-001
28
-
29
- - Severity: medium
30
- - Title: `uninstall` reported success for unknown workflow groups
31
- - Repro:
32
- 1. Start with a fresh state root.
33
- 2. Run `node dist/cli.js uninstall missing`.
34
- - Expected:
35
- - Command should fail and say the workflow group is not registered.
36
- - Actual:
37
- - Command printed `Removed: missing` and exited `0`.
38
- - Fix status: verified
39
-
40
- ## Fix
41
-
42
- - Updated source removal to reject unknown workflow groups with `SOURCE_NOT_FOUND`.
43
- - Added regression test coverage for uninstalling an unknown workflow group.
44
-
45
- ## Verification
46
-
47
- - `npm test` -> 33 passed
48
- - `npm run build` -> passed
49
- - `node dist/cli.js uninstall missing` -> prints `Workflow group 'missing' is not registered.` and exits `1`
50
- - End-to-end fixture flow still passes:
51
- - add source
52
- - apply targets
53
- - doctor healthy
54
- - update after source change
55
- - uninstall existing source
56
- - list returns empty state
57
-
58
- ## Summary
59
-
60
- QA found 1 issue, fixed 1, deferred 0.