@witty-ai/skill-insight 0.5.0-beta → 0.6.0-beta

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 (223) hide show
  1. package/.env.example +5 -0
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/app-path-routes-manifest.json +4 -0
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/.next/routes-manifest.json +24 -0
  7. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  8. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  15. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/api/config/route.js +3 -3
  23. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/data/route.js +3 -3
  25. package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js +3 -3
  27. package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js +1 -1
  29. package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js +4 -4
  31. package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/rejudge/route.js +3 -3
  33. package/.next/standalone/.next/server/app/api/rejudge/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/session/route.js +1 -1
  35. package/.next/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/app-paths-manifest.json +3 -0
  37. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/build-manifest.json +11 -0
  38. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/server-reference-manifest.json +4 -0
  39. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js +6 -0
  40. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js.map +5 -0
  41. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js.nft.json +1 -0
  42. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route_client-reference-manifest.js +2 -0
  43. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/app-paths-manifest.json +3 -0
  44. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/build-manifest.json +11 -0
  45. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/server-reference-manifest.json +4 -0
  46. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js +6 -0
  47. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js.map +5 -0
  48. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js.nft.json +1 -0
  49. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route_client-reference-manifest.js +2 -0
  50. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js +3 -2
  52. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/skills/logs/route.js +2 -2
  55. package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/api/skills/route.js +3 -2
  57. package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/app-paths-manifest.json +3 -0
  59. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/build-manifest.json +11 -0
  60. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/server-reference-manifest.json +4 -0
  61. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js +8 -0
  62. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.map +5 -0
  63. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -0
  64. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route_client-reference-manifest.js +2 -0
  65. package/.next/standalone/.next/server/app/api/task-stats/route/app-paths-manifest.json +3 -0
  66. package/.next/standalone/.next/server/app/api/task-stats/route/build-manifest.json +11 -0
  67. package/.next/standalone/.next/server/app/api/task-stats/route/server-reference-manifest.json +4 -0
  68. package/.next/standalone/.next/server/app/api/task-stats/route.js +11 -0
  69. package/.next/standalone/.next/server/app/api/task-stats/route.js.map +5 -0
  70. package/.next/standalone/.next/server/app/api/task-stats/route.js.nft.json +1 -0
  71. package/.next/standalone/.next/server/app/api/task-stats/route_client-reference-manifest.js +2 -0
  72. package/.next/standalone/.next/server/app/api/upload/route.js +1 -1
  73. package/.next/standalone/.next/server/app/api/upload/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/details/page/react-loadable-manifest.json +2 -2
  75. package/.next/standalone/.next/server/app/details/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/details.html +1 -1
  77. package/.next/standalone/.next/server/app/details.rsc +2 -2
  78. package/.next/standalone/.next/server/app/details.segments/_full.segment.rsc +2 -2
  79. package/.next/standalone/.next/server/app/details.segments/_head.segment.rsc +1 -1
  80. package/.next/standalone/.next/server/app/details.segments/_index.segment.rsc +1 -1
  81. package/.next/standalone/.next/server/app/details.segments/_tree.segment.rsc +1 -1
  82. package/.next/standalone/.next/server/app/details.segments/details/__PAGE__.segment.rsc +2 -2
  83. package/.next/standalone/.next/server/app/details.segments/details.segment.rsc +1 -1
  84. package/.next/standalone/.next/server/app/index.html +1 -1
  85. package/.next/standalone/.next/server/app/index.rsc +2 -2
  86. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  87. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
  88. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  89. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  90. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  91. package/.next/standalone/.next/server/app/login.html +1 -1
  92. package/.next/standalone/.next/server/app/login.rsc +1 -1
  93. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +1 -1
  94. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  95. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +1 -1
  96. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  97. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  98. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  99. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/skills.html +1 -1
  101. package/.next/standalone/.next/server/app/skills.rsc +1 -1
  102. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +1 -1
  103. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  104. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +1 -1
  105. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +1 -1
  106. package/.next/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  107. package/.next/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  108. package/.next/standalone/.next/server/app-paths-manifest.json +4 -0
  109. package/.next/standalone/.next/server/chunks/[root-of-the-server]__15dbd1f2._.js +3 -0
  110. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ce5e3b8._.js +1 -1
  111. package/.next/standalone/.next/server/chunks/[root-of-the-server]__53775b48._.js +1 -1
  112. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6923eecf._.js +1 -1
  113. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6d8053e2._.js +1 -1
  114. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8402dfd1._.js +3 -0
  115. package/.next/standalone/.next/server/chunks/[root-of-the-server]__863cf6de._.js +1 -1
  116. package/.next/standalone/.next/server/chunks/[root-of-the-server]__89404730._.js +3 -0
  117. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa5c8858._.js +2 -2
  118. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c20da96a._.js +3 -0
  119. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ddf63a21._.js +3 -0
  120. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f9e66e02._.js +3 -0
  121. package/.next/standalone/.next/server/chunks/_3e8b4d8c._.js +1 -1
  122. package/.next/standalone/.next/server/chunks/_41a98bd8._.js +1 -1
  123. package/.next/standalone/.next/server/chunks/_4c806e26._.js +3 -0
  124. package/.next/standalone/.next/server/chunks/_cd3d20ca._.js +1 -1
  125. package/.next/standalone/.next/server/chunks/_ddffef3e._.js +1 -1
  126. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_setup_opencode-tui_route_actions_fc8ae29f.js +3 -0
  127. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_skills_sync-enterprise_route_actions_0ca45899.js +3 -0
  128. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_task-stats_route_actions_983505cd.js +3 -0
  129. package/.next/standalone/.next/server/chunks/ce889_server_app_api_setup_opencode-commands_si-optimizer_route_actions_fcde30ef.js +3 -0
  130. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_c33286ed.js +47 -4
  131. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f42faeee.js +1 -1
  132. package/.next/standalone/.next/server/chunks/src_98433cb8._.js +175 -0
  133. package/.next/standalone/.next/server/chunks/src_lib_12408140._.js +1 -1
  134. package/.next/standalone/.next/server/chunks/ssr/_c8c8c083._.js +2 -2
  135. package/.next/standalone/.next/server/chunks/ssr/_fd46f439._.js +2 -1
  136. package/.next/standalone/.next/server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_3582f3d0.js +1 -1
  137. package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_a1341fea._.js +1 -1
  138. package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_e1de6ed8._.js +1 -1
  139. package/.next/standalone/.next/server/pages/404.html +1 -1
  140. package/.next/standalone/.next/server/pages/500.html +2 -2
  141. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  143. package/.next/standalone/.next/static/chunks/{01eddf501c574a44.js → 4ee8dc41c9f15b7b.js} +1 -1
  144. package/.next/standalone/.next/static/chunks/{737b8cff3c6a4e30.js → 9445b2873a413c58.js} +1 -1
  145. package/.next/standalone/.next/static/chunks/94dfb15df65ef720.js +2 -0
  146. package/.next/standalone/.next/static/chunks/9d1c5c3494fa53de.js +109 -0
  147. package/.next/standalone/.next/static/chunks/{e09d9ee16fe90255.js → cd0fde15dc0dfcca.js} +1 -1
  148. package/.next/standalone/.next/static/chunks/{ff6357067630b168.js → e13d208072a48316.js} +1 -1
  149. package/.next/standalone/node_modules/.prisma/client/edge.js +6 -3
  150. package/.next/standalone/node_modules/.prisma/client/index-browser.js +3 -0
  151. package/.next/standalone/node_modules/.prisma/client/index.js +6 -3
  152. package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
  153. package/.next/standalone/node_modules/.prisma/client/schema.prisma +12 -9
  154. package/.next/standalone/node_modules/.prisma/client/wasm.js +3 -0
  155. package/.next/standalone/node_modules/adm-zip/util/constants.js +142 -0
  156. package/.next/standalone/node_modules/adm-zip/util/decoder.js +5 -0
  157. package/.next/standalone/node_modules/adm-zip/util/errors.js +63 -0
  158. package/.next/standalone/node_modules/adm-zip/util/fattr.js +76 -0
  159. package/.next/standalone/node_modules/adm-zip/util/index.js +5 -0
  160. package/.next/standalone/node_modules/adm-zip/util/utils.js +339 -0
  161. package/.next/standalone/package.json +6 -2
  162. package/.next/standalone/prisma/schema.prisma +3 -0
  163. package/.next/standalone/scripts/opencode_plugin.ts +23 -5
  164. package/.next/standalone/scripts/opencode_tui_plugin.tsx +308 -0
  165. package/.next/standalone/scripts/si-optimizer.md +5 -0
  166. package/.next/static/chunks/{01eddf501c574a44.js → 4ee8dc41c9f15b7b.js} +1 -1
  167. package/.next/static/chunks/{737b8cff3c6a4e30.js → 9445b2873a413c58.js} +1 -1
  168. package/.next/static/chunks/94dfb15df65ef720.js +2 -0
  169. package/.next/static/chunks/9d1c5c3494fa53de.js +109 -0
  170. package/.next/static/chunks/{e09d9ee16fe90255.js → cd0fde15dc0dfcca.js} +1 -1
  171. package/.next/static/chunks/{ff6357067630b168.js → e13d208072a48316.js} +1 -1
  172. package/package.json +6 -2
  173. package/prisma/schema.prisma +3 -0
  174. package/scripts/activate_telemetry.sh +44 -1
  175. package/scripts/opencode_plugin.ts +23 -5
  176. package/scripts/opencode_tui_plugin.tsx +308 -0
  177. package/scripts/si-optimizer.md +5 -0
  178. package/scripts/utils.js +0 -1
  179. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e2f0baee._.js +0 -3
  180. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fc05579d._.js +0 -3
  181. package/.next/standalone/.next/server/chunks/src_497d2ad2._.js +0 -175
  182. package/.next/standalone/.next/static/chunks/4071dbec4cf7e72e.js +0 -109
  183. package/.next/standalone/.next/static/chunks/a87b5e84254095a5.js +0 -1
  184. package/.next/standalone/LICENSE +0 -21
  185. package/.next/standalone/bin/cli.js +0 -106
  186. package/.next/standalone/custom-models.example.json +0 -21
  187. package/.next/standalone/eslint.config.mjs +0 -18
  188. package/.next/standalone/features/feature-skill-used-jump-link/design/2026-03-18-skill-used-jump-link-design.md +0 -126
  189. package/.next/standalone/features/feature-skill-used-jump-link/feature.json +0 -32
  190. package/.next/standalone/features/feature-skill-used-jump-link/issue.md +0 -32
  191. package/.next/standalone/features/feature-skill-used-jump-link/plans/2026-03-18-skill-used-jump-link.md +0 -528
  192. package/.next/standalone/next.config.ts +0 -41
  193. package/.next/standalone/scripts/activate_telemetry.sh +0 -159
  194. package/.next/standalone/scripts/create_migration_package.sh +0 -124
  195. package/.next/standalone/scripts/fix_models.js +0 -66
  196. package/.next/standalone/scripts/init_opengauss.py +0 -284
  197. package/.next/standalone/scripts/install.js +0 -273
  198. package/.next/standalone/scripts/logs.js +0 -38
  199. package/.next/standalone/scripts/otel_data/logs.jsonl +0 -12
  200. package/.next/standalone/scripts/otel_data/metrics.jsonl +0 -21
  201. package/.next/standalone/scripts/otel_data/raw_requests.jsonl +0 -8
  202. package/.next/standalone/scripts/otel_data/raw_requests.jsonl.bak +0 -6
  203. package/.next/standalone/scripts/otel_receiver.py +0 -580
  204. package/.next/standalone/scripts/postinstall.js +0 -192
  205. package/.next/standalone/scripts/publish-npm.js +0 -401
  206. package/.next/standalone/scripts/restart.js +0 -26
  207. package/.next/standalone/scripts/restart.sh +0 -138
  208. package/.next/standalone/scripts/restart_dev.sh +0 -132
  209. package/.next/standalone/scripts/start.js +0 -291
  210. package/.next/standalone/scripts/status.js +0 -41
  211. package/.next/standalone/scripts/stop.js +0 -90
  212. package/.next/standalone/scripts/sync_skills.js +0 -216
  213. package/.next/standalone/scripts/utils.js +0 -235
  214. package/.next/standalone/tests/setup_skill_optimizer.sh +0 -118
  215. package/.next/standalone/tsconfig.json +0 -34
  216. package/.next/static/chunks/4071dbec4cf7e72e.js +0 -109
  217. package/.next/static/chunks/a87b5e84254095a5.js +0 -1
  218. /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → 0uvhCJooDO_gMNlKOaHwB}/_buildManifest.js +0 -0
  219. /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → 0uvhCJooDO_gMNlKOaHwB}/_clientMiddlewareManifest.json +0 -0
  220. /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → 0uvhCJooDO_gMNlKOaHwB}/_ssgManifest.js +0 -0
  221. /package/.next/static/{H581Rok68JtPV4bAVVH3l → 0uvhCJooDO_gMNlKOaHwB}/_buildManifest.js +0 -0
  222. /package/.next/static/{H581Rok68JtPV4bAVVH3l → 0uvhCJooDO_gMNlKOaHwB}/_clientMiddlewareManifest.json +0 -0
  223. /package/.next/static/{H581Rok68JtPV4bAVVH3l → 0uvhCJooDO_gMNlKOaHwB}/_ssgManifest.js +0 -0
@@ -1,18 +0,0 @@
1
- import { defineConfig, globalIgnores } from "eslint/config";
2
- import nextVitals from "eslint-config-next/core-web-vitals";
3
- import nextTs from "eslint-config-next/typescript";
4
-
5
- const eslintConfig = defineConfig([
6
- ...nextVitals,
7
- ...nextTs,
8
- // Override default ignores of eslint-config-next.
9
- globalIgnores([
10
- // Default ignores of eslint-config-next:
11
- ".next/**",
12
- "out/**",
13
- "build/**",
14
- "next-env.d.ts",
15
- ]),
16
- ]);
17
-
18
- export default eslintConfig;
@@ -1,126 +0,0 @@
1
- # Design: Skill Used Jump Link Feature
2
-
3
- **Issue**: #52
4
- **Date**: 2026-03-18
5
- **Status**: Design Approved
6
-
7
- ## Overview
8
-
9
- Add click-to-navigate functionality to the "skill used" field in execution records, allowing users to click skill names and navigate to a dedicated skill detail page.
10
-
11
- ## Requirements
12
-
13
- 1. Clickable skill names in execution records
14
- 2. Visual link styling (color, underline, hover effects)
15
- 3. Navigate to skill detail page with specific version
16
- 4. Support multiple skills in one record
17
- 5. Graceful error handling for deleted/non-existent skills
18
-
19
- ## Architecture
20
-
21
- ```
22
- Execution Records (details/page.tsx)
23
-
24
- │ click skill name
25
-
26
- /skills/[id]?version=[version] ← New Page
27
-
28
-
29
- SkillDetailPage
30
- - Skill metadata (name, description, version)
31
- - Flow diagram (Mermaid)
32
- - Back navigation
33
- ```
34
-
35
- ## Components
36
-
37
- ### 1. SkillLink Component
38
-
39
- **Path**: `/src/components/SkillLink.tsx`
40
-
41
- ```typescript
42
- interface SkillLinkProps {
43
- skillId: string | null | undefined;
44
- skillName: string;
45
- version?: string | number;
46
- }
47
- ```
48
-
49
- **Features**:
50
- - Styled as clickable link (blue color, underline on hover)
51
- - Navigates to `/skills/{skillId}?version={version}`
52
- - Falls back to plain text if skillId missing
53
- - Shows tooltip for missing skillId
54
-
55
- ### 2. Skill Detail Page
56
-
57
- **Path**: `/src/app/skills/[id]/page.tsx`
58
-
59
- **Features**:
60
- - Fetches skill via `GET /api/skills/{id}/versions/{version}`
61
- - Displays: skill name, description, version, flow diagram
62
- - Uses existing SkillVersionDetailModal content as reference
63
- - Back navigation button
64
- - Error state for skill not found
65
-
66
- ### 3. Modified Files
67
-
68
- | File | Changes |
69
- |------|---------|
70
- | `src/app/details/page.tsx` | Replace skill used text with SkillLink components |
71
- | `src/components/Dashboard.tsx` | Add SkillLink if skills shown in list view |
72
-
73
- ## URL Format
74
-
75
- ```
76
- /skills/{skillId}?version={versionNumber}
77
- ```
78
-
79
- Examples:
80
- - `/skills/skill_my-skill_12345?version=1`
81
- - `/skills/skill_my-skill_12345` (no version = latest)
82
-
83
- ## Error Handling
84
-
85
- | Scenario | Behavior |
86
- |----------|----------|
87
- | Skill deleted | Show "Skill not found" page with back button |
88
- | Invalid version | Fall back to latest version |
89
- | Missing skillId | Render plain text with tooltip |
90
- | API error | Show error message with retry option |
91
-
92
- ## Data Flow
93
-
94
- 1. User views execution record with skill used field
95
- 2. SkillName rendered as `<SkillLink>` component
96
- 3. User clicks skill name
97
- 4. Navigate to `/skills/[id]?version=[version]`
98
- 5. Page fetches skill data via API
99
- 6. Display skill details with flow diagram
100
-
101
- ## Testing Strategy
102
-
103
- ### Unit Tests
104
- - SkillLink component rendering
105
- - Navigation URL generation
106
- - Error state handling
107
-
108
- ### Integration Tests
109
- - Click skill → navigate to detail page
110
- - Skill detail page data fetching
111
- - Error scenarios (deleted skill, invalid version)
112
-
113
- ### Manual Tests
114
- - Visual styling verification
115
- - Multiple skills display
116
- - Back navigation
117
-
118
- ## Implementation Tasks
119
-
120
- 1. Create SkillLink component
121
- 2. Create skill detail page route
122
- 3. Create skill detail page component
123
- 4. Modify details page to use SkillLink
124
- 5. Add error handling
125
- 6. Write tests
126
- 7. Verify all acceptance criteria
@@ -1,32 +0,0 @@
1
- {
2
- "name": "skill-used-jump-link",
3
- "title": "执行记录中skill used增加跳转功能",
4
- "status": "completed",
5
- "claimedBy": "gongxh13",
6
- "claimedAt": "2026-03-18T08:50:00Z",
7
- "completedAt": "2026-03-18T09:30:00Z",
8
- "worktree": {
9
- "path": "",
10
- "enabled": false
11
- },
12
- "platformIssue": {
13
- "id": 52,
14
- "web_url": "https://atomgit.com/openeuler/witty-skill-insight/issues/52",
15
- "title": "【feature】执行记录中skill used增加跳转功能",
16
- "state": "open"
17
- },
18
- "documentation": {
19
- "requirements": [],
20
- "design": [],
21
- "tests": [],
22
- "pr": [
23
- {
24
- "title": "Pull Request #38",
25
- "url": "https://atomgit.com/openeuler/witty-skill-insight/merge_requests/38",
26
- "createdAt": "2026-03-18T09:30:00Z"
27
- }
28
- ],
29
- "deployment": [],
30
- "notes": ""
31
- }
32
- }
@@ -1,32 +0,0 @@
1
- #52: 【feature】执行记录中skill used增加跳转功能
2
- 状态: open | 创建: 2026-03-10 | 更新: 2026-03-13
3
- 标签: sig/sig-intelligence
4
- 链接: https://atomgit.com/openeuler/witty-skill-insight/issues/52
5
-
6
- --- Issue Content ---
7
- **1、背景与价值**
8
- 在Witty-Skill-Insight平台中,执行记录中的skill used字段当前仅以字符串形式显示,展示实际执行过程中使用的skill名称。用户无法直接从执行记录跳转到对应的skill详情页面查看skill的完整信息。增加跳转功能可以让用户快速查看skill详情,提升使用体验和操作效率。
9
-
10
- **2、需求详情**
11
- - 跳转功能:在执行记录的skill used字段上增加点击跳转功能
12
- - 跳转目标:点击skill名字后跳转到对应的skill详情页面
13
- - 视觉提示:将skill used字符串改为可点击的链接样式,添加适当的视觉提示(如颜色、下划线、hover效果)
14
- - 保持显示:跳转功能不改变skill used的显示内容,仍然显示实际执行的skill名称
15
- - 多skill支持:如果执行记录中有多个skill,每个skill都应该支持跳转
16
- - 错误处理:如果skill不存在或已被删除,提供友好的错误提示
17
-
18
- **3、验收标准**
19
- 一:跳转功能正常
20
- 点击skill used字段中的skill名称能够正确跳转到对应的skill详情页面。
21
-
22
- 二:视觉提示清晰
23
- skill名称有明显的可点击样式提示,用户能够识别这是可跳转的链接。
24
-
25
- 三:显示内容不变
26
- 跳转功能不改变skill used字段的显示内容,仍然显示实际执行的skill名称。
27
-
28
- 四:多skill支持
29
- 如果执行记录中有多个skill,每个skill都能正确跳转到对应的详情页面。
30
-
31
- 五:错误处理友好
32
- 当skill不存在或已被删除时,能够提供友好的错误提示。