project-iris 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (729) hide show
  1. package/README.md +424 -0
  2. package/dist/bridge/agent-runner.js +190 -0
  3. package/dist/bridge/connector-factory.js +31 -0
  4. package/dist/bridge/connectors/antigravity-connector.js +18 -0
  5. package/dist/bridge/connectors/cursor-connector.js +31 -0
  6. package/dist/bridge/connectors/in-process-connector.js +29 -0
  7. package/dist/bridge/connectors/vscode-connector.js +31 -0
  8. package/dist/bridge/connectors/windsurf-connector.js +23 -0
  9. package/dist/bridge/filesystem-connector.js +110 -0
  10. package/dist/bridge/helper.js +203 -0
  11. package/dist/bridge/types.js +10 -0
  12. package/dist/cli.js +38 -0
  13. package/dist/commands/ask.js +259 -0
  14. package/dist/commands/bridge.js +88 -0
  15. package/dist/commands/develop.js +141 -0
  16. package/dist/commands/doctor.js +102 -0
  17. package/dist/commands/flow.js +301 -0
  18. package/dist/commands/framework.js +273 -0
  19. package/dist/commands/generate.js +59 -0
  20. package/dist/commands/install.js +73 -0
  21. package/dist/commands/pack.js +33 -0
  22. package/dist/commands/phase.js +38 -0
  23. package/dist/commands/run.js +199 -0
  24. package/dist/commands/status.js +114 -0
  25. package/dist/commands/uninstall.js +14 -0
  26. package/dist/commands/use.js +20 -0
  27. package/dist/commands/validate.js +102 -0
  28. package/dist/framework/framework-loader.js +97 -0
  29. package/dist/framework/framework-paths.js +48 -0
  30. package/dist/framework/framework-types.js +15 -0
  31. package/dist/iris/artifact-checker.js +78 -0
  32. package/dist/iris/artifacts/config.js +68 -0
  33. package/dist/iris/artifacts/generator.js +88 -0
  34. package/dist/iris/artifacts/types.js +1 -0
  35. package/dist/iris/bundle.js +44 -0
  36. package/dist/iris/doctrine/collector.js +124 -0
  37. package/dist/iris/fixer.js +149 -0
  38. package/dist/iris/flows/manifest.js +124 -0
  39. package/dist/iris/framework-context.js +49 -0
  40. package/dist/iris/framework-manager.js +215 -0
  41. package/dist/iris/fs/atomic.js +22 -0
  42. package/dist/iris/guard.js +38 -0
  43. package/dist/iris/importers/bmad.js +70 -0
  44. package/dist/iris/importers/index.js +9 -0
  45. package/dist/iris/importers/speckit.js +15 -0
  46. package/dist/iris/importers/specsmd.js +78 -0
  47. package/dist/iris/importers/types.js +8 -0
  48. package/dist/iris/importers/writer.js +139 -0
  49. package/dist/iris/include.js +49 -0
  50. package/dist/iris/installer.js +334 -0
  51. package/dist/iris/interactive/env.js +21 -0
  52. package/dist/iris/interactive/intent-interview.js +345 -0
  53. package/dist/iris/interactive/intent-schema.js +28 -0
  54. package/dist/iris/interactive/interview-io.js +22 -0
  55. package/dist/iris/interview/config.js +71 -0
  56. package/dist/iris/interview/types.js +16 -0
  57. package/dist/iris/interview/utils.js +38 -0
  58. package/dist/iris/manifest.js +54 -0
  59. package/dist/iris/packer.js +325 -0
  60. package/dist/iris/parsers/unit-parser.js +43 -0
  61. package/dist/iris/paths.js +18 -0
  62. package/dist/iris/policy.js +133 -0
  63. package/dist/iris/proc.js +56 -0
  64. package/dist/iris/report.js +53 -0
  65. package/dist/iris/resolver.js +66 -0
  66. package/dist/iris/router.js +114 -0
  67. package/dist/iris/routes.js +189 -0
  68. package/dist/iris/run-state.js +146 -0
  69. package/dist/iris/state.js +113 -0
  70. package/dist/iris/templates.js +70 -0
  71. package/dist/iris/tmp.js +24 -0
  72. package/dist/iris/uninstaller.js +181 -0
  73. package/dist/iris/utils/interpolate.js +42 -0
  74. package/dist/iris/validator.js +391 -0
  75. package/dist/iris/workflow/config.js +51 -0
  76. package/dist/iris/workflow/engine.js +129 -0
  77. package/dist/iris/workflow/steps.js +448 -0
  78. package/dist/iris/workflow/types.js +1 -0
  79. package/dist/lib.js +96 -0
  80. package/dist/utils/exit-codes.js +7 -0
  81. package/dist/workflows/bolt-execution.js +238 -0
  82. package/dist/workflows/bolt-plan.js +192 -0
  83. package/dist/workflows/intent-inception.js +210 -0
  84. package/dist/workflows/reporting.js +74 -0
  85. package/package.json +45 -0
  86. package/src/iris_bundle/.iris/aidlc/README.md +16 -0
  87. package/src/iris_bundle/.iris/aidlc/agents/iris-construction-agent.md +35 -0
  88. package/src/iris_bundle/.iris/aidlc/agents/iris-inception-agent.md +30 -0
  89. package/src/iris_bundle/.iris/aidlc/agents/iris-master-agent.md +35 -0
  90. package/src/iris_bundle/.iris/aidlc/agents/iris-operations-agent.md +29 -0
  91. package/src/iris_bundle/.iris/aidlc/commands/iris-construction-agent.md +18 -0
  92. package/src/iris_bundle/.iris/aidlc/commands/iris-inception-agent.md +18 -0
  93. package/src/iris_bundle/.iris/aidlc/commands/iris-master-agent.md +18 -0
  94. package/src/iris_bundle/.iris/aidlc/commands/iris-operations-agent.md +18 -0
  95. package/src/iris_bundle/.iris/aidlc/context/context-map.md +25 -0
  96. package/src/iris_bundle/.iris/aidlc/context/exclusion-rules.md +13 -0
  97. package/src/iris_bundle/.iris/aidlc/context/load-order.md +25 -0
  98. package/src/iris_bundle/.iris/aidlc/memory/intent-rules.md +9 -0
  99. package/src/iris_bundle/.iris/aidlc/memory/log-rules.md +5 -0
  100. package/src/iris_bundle/.iris/aidlc/memory/memory-bank.yaml +39 -0
  101. package/src/iris_bundle/.iris/aidlc/memory/unit-rules.md +9 -0
  102. package/src/iris_bundle/.iris/aidlc/quick-start.md +24 -0
  103. package/src/iris_bundle/.iris/aidlc/skills/execution/implementation.md +14 -0
  104. package/src/iris_bundle/.iris/aidlc/skills/execution/refactoring.md +13 -0
  105. package/src/iris_bundle/.iris/aidlc/skills/execution/scaffold-generation.md +15 -0
  106. package/src/iris_bundle/.iris/aidlc/skills/governance/escalation.md +13 -0
  107. package/src/iris_bundle/.iris/aidlc/skills/governance/quality-gates.md +14 -0
  108. package/src/iris_bundle/.iris/aidlc/skills/governance/stop-conditions.md +11 -0
  109. package/src/iris_bundle/.iris/aidlc/skills/reasoning/decomposition.md +23 -0
  110. package/src/iris_bundle/.iris/aidlc/skills/reasoning/risk-analysis.md +14 -0
  111. package/src/iris_bundle/.iris/aidlc/skills/reasoning/verification.md +21 -0
  112. package/src/iris_bundle/.iris/aidlc/standards/artifacts-registry.md +38 -0
  113. package/src/iris_bundle/.iris/aidlc/standards/decision-logging.md +16 -0
  114. package/src/iris_bundle/.iris/aidlc/standards/doctrine-structure.md +31 -0
  115. package/src/iris_bundle/.iris/aidlc/standards/documentation-rules.md +15 -0
  116. package/src/iris_bundle/.iris/aidlc/standards/file-structure.md +21 -0
  117. package/src/iris_bundle/.iris/aidlc/standards/naming-conventions.md +18 -0
  118. package/src/iris_bundle/.iris/aidlc/standards/phases-and-gates.md +25 -0
  119. package/src/iris_bundle/.iris/aidlc/standards/routes-and-routing.md +35 -0
  120. package/src/iris_bundle/.iris/aidlc/standards/tool-wrappers.md +32 -0
  121. package/src/iris_bundle/.iris/aidlc/templates/bolt.md +23 -0
  122. package/src/iris_bundle/.iris/aidlc/templates/doctrine-doc-template.md +33 -0
  123. package/src/iris_bundle/.iris/aidlc/templates/intent.md +23 -0
  124. package/src/iris_bundle/.iris/aidlc/templates/log.md +24 -0
  125. package/src/iris_bundle/.iris/aidlc/templates/review.md +21 -0
  126. package/src/iris_bundle/.iris/aidlc/templates/unit.md +31 -0
  127. package/src/iris_bundle/.iris/aidlc/validation/failure-modes.md +16 -0
  128. package/src/iris_bundle/.iris/aidlc/validation/phase-preconditions.md +21 -0
  129. package/src/iris_bundle/.iris/aidlc/validation/quality-checklist.md +20 -0
  130. package/src/iris_bundle/.iris/flows/specs-md/doctrine/templates/requirements.md +18 -0
  131. package/src/iris_bundle/.iris/flows/specs-md/doctrine/templates/system-context.md +17 -0
  132. package/src/iris_bundle/.iris/flows/specs-md/doctrine/templates/unit-briefs/construction.md +16 -0
  133. package/src/iris_bundle/.iris/flows/specs-md/doctrine/templates/unit-briefs/operations.md +14 -0
  134. package/src/iris_bundle/.iris/flows/specs-md/doctrine/templates/units.md +11 -0
  135. package/src/iris_bundle/.iris/flows/specs-md/flow.yaml +8 -0
  136. package/src/iris_bundle/.iris/flows/specs-md/policy.overlay.yaml +26 -0
  137. package/src/iris_bundle/.iris/flows/specs-md/routes.overlay.yaml +16 -0
  138. package/src/iris_bundle/.iris/policy.yaml +27 -0
  139. package/src/iris_bundle/.iris/routes.yaml +98 -0
  140. package/src/iris_bundle/.iris/state.yaml +7 -0
  141. package/src/iris_bundle/.iris/tools/claude/.claude/claude.md +9 -0
  142. package/src/iris_bundle/.iris/tools/claude/.claude/commands/compare-specs.md +203 -0
  143. package/src/iris_bundle/.iris/tools/claude/.claude/commands/iris-construction-agent.md +25 -0
  144. package/src/iris_bundle/.iris/tools/claude/.claude/commands/iris-inception-agent.md +25 -0
  145. package/src/iris_bundle/.iris/tools/claude/.claude/commands/iris-master-agent.md +25 -0
  146. package/src/iris_bundle/.iris/tools/claude/.claude/commands/iris-operations-agent.md +25 -0
  147. package/src/iris_bundle/.iris/tools/codex/AGENTS.md +15 -0
  148. package/src/iris_bundle/.iris/tools/cursor/.cursor/commands/iris-construction-agent.md +25 -0
  149. package/src/iris_bundle/.iris/tools/cursor/.cursor/commands/iris-inception-agent.md +25 -0
  150. package/src/iris_bundle/.iris/tools/cursor/.cursor/commands/iris-master-agent.md +25 -0
  151. package/src/iris_bundle/.iris/tools/cursor/.cursor/commands/iris-operations-agent.md +25 -0
  152. package/src/iris_bundle/.iris/tools/gemini/.gemini/commands/iris-construction-agent.toml +29 -0
  153. package/src/iris_bundle/.iris/tools/gemini/.gemini/commands/iris-inception-agent.toml +29 -0
  154. package/src/iris_bundle/.iris/tools/gemini/.gemini/commands/iris-master-agent.toml +29 -0
  155. package/src/iris_bundle/.iris/tools/gemini/.gemini/commands/iris-operations-agent.toml +29 -0
  156. package/src/iris_bundle/frameworks/iris-core/.claude/claude.md +238 -0
  157. package/src/iris_bundle/frameworks/iris-core/.claude/commands/compare-iris.md +203 -0
  158. package/src/iris_bundle/frameworks/iris-core/.claude/commands/irismd-construction-agent.md +63 -0
  159. package/src/iris_bundle/frameworks/iris-core/.claude/commands/irismd-inception-agent.md +55 -0
  160. package/src/iris_bundle/frameworks/iris-core/.claude/commands/irismd-master-agent.md +47 -0
  161. package/src/iris_bundle/frameworks/iris-core/.claude/commands/irismd-operations-agent.md +77 -0
  162. package/src/iris_bundle/frameworks/iris-core/.github/workflows/claude-code-review.yml +57 -0
  163. package/src/iris_bundle/frameworks/iris-core/.github/workflows/claude.yml +50 -0
  164. package/src/iris_bundle/frameworks/iris-core/.github/workflows/npm-package-ci.yml +46 -0
  165. package/src/iris_bundle/frameworks/iris-core/.github/workflows/npm-package-dev.yml +59 -0
  166. package/src/iris_bundle/frameworks/iris-core/.github/workflows/npm-package-release.yml +107 -0
  167. package/src/iris_bundle/frameworks/iris-core/.github/workflows/vscode-publish.yml +113 -0
  168. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/README.md +372 -0
  169. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/agents/construction-agent.md +80 -0
  170. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/agents/inception-agent.md +97 -0
  171. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/agents/master-agent.md +61 -0
  172. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/agents/operations-agent.md +89 -0
  173. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/commands/construction-agent.md +63 -0
  174. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/commands/inception-agent.md +55 -0
  175. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/commands/master-agent.md +47 -0
  176. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/commands/operations-agent.md +77 -0
  177. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/context-config.yaml +67 -0
  178. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/memory-bank.yaml +104 -0
  179. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/quick-start.md +322 -0
  180. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/construction/bolt-list.md +163 -0
  181. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/construction/bolt-replan.md +345 -0
  182. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/construction/bolt-start.md +442 -0
  183. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/construction/bolt-status.md +185 -0
  184. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/construction/navigator.md +196 -0
  185. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/inception/bolt-plan.md +372 -0
  186. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/inception/context.md +171 -0
  187. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/inception/intent-create.md +211 -0
  188. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/inception/intent-list.md +124 -0
  189. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/inception/navigator.md +207 -0
  190. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/inception/requirements.md +227 -0
  191. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/inception/review.md +248 -0
  192. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/inception/story-create.md +304 -0
  193. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/inception/units.md +278 -0
  194. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/master/analyze-context.md +239 -0
  195. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/master/answer-question.md +141 -0
  196. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/master/explain-flow.md +158 -0
  197. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/master/project-init.md +281 -0
  198. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/master/route-request.md +126 -0
  199. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/operations/build.md +237 -0
  200. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/operations/deploy.md +259 -0
  201. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/operations/monitor.md +265 -0
  202. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/operations/navigator.md +209 -0
  203. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/skills/operations/verify.md +224 -0
  204. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/bolt-template.md +226 -0
  205. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +49 -0
  206. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +55 -0
  207. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +67 -0
  208. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +62 -0
  209. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +528 -0
  210. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/bolt-types/simple-construction-bolt.md +347 -0
  211. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/bolt-types/spike-bolt.md +240 -0
  212. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/construction-log-template.md +129 -0
  213. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/standards/coding-standards.md +29 -0
  214. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/standards/system-architecture.md +22 -0
  215. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/construction/standards/tech-stack.md +19 -0
  216. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/inception/inception-log-template.md +134 -0
  217. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/inception/project/README.md +55 -0
  218. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/inception/requirements-template.md +144 -0
  219. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/inception/stories-template.md +38 -0
  220. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/inception/story-template.md +147 -0
  221. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/inception/system-context-template.md +29 -0
  222. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/inception/unit-brief-template.md +177 -0
  223. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/inception/units-template.md +52 -0
  224. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/standards/catalog.yaml +345 -0
  225. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/standards/coding-standards.guide.md +553 -0
  226. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/standards/data-stack.guide.md +162 -0
  227. package/src/iris_bundle/frameworks/iris-core/.irismd/aidlc/templates/standards/tech-stack.guide.md +280 -0
  228. package/src/iris_bundle/frameworks/iris-core/.markdownlint.yaml +142 -0
  229. package/src/iris_bundle/frameworks/iris-core/LICENSE +21 -0
  230. package/src/iris_bundle/frameworks/iris-core/PRIVACY.md +38 -0
  231. package/src/iris_bundle/frameworks/iris-core/README.md +397 -0
  232. package/src/iris_bundle/frameworks/iris-core/_iris_legacy/framework.yaml +4 -0
  233. package/src/iris_bundle/frameworks/iris-core/_iris_legacy/interview.yaml +9 -0
  234. package/src/iris_bundle/frameworks/iris-core/_iris_legacy/pack.yaml +2 -0
  235. package/src/iris_bundle/frameworks/iris-core/_iris_legacy/policy.yaml +27 -0
  236. package/src/iris_bundle/frameworks/iris-core/_iris_legacy/routes.yaml +98 -0
  237. package/src/iris_bundle/frameworks/iris-core/_iris_legacy/templates/bolt.md +23 -0
  238. package/src/iris_bundle/frameworks/iris-core/_iris_legacy/templates/doctrine-doc-template.md +33 -0
  239. package/src/iris_bundle/frameworks/iris-core/_iris_legacy/templates/intent.md +23 -0
  240. package/src/iris_bundle/frameworks/iris-core/_iris_legacy/templates/log.md +24 -0
  241. package/src/iris_bundle/frameworks/iris-core/_iris_legacy/templates/review.md +21 -0
  242. package/src/iris_bundle/frameworks/iris-core/_iris_legacy/templates/unit.md +31 -0
  243. package/src/iris_bundle/frameworks/iris-core/artifacts.yaml +78 -0
  244. package/src/iris_bundle/frameworks/iris-core/dev_release_guide.md +324 -0
  245. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/.claude/skills/frontend-design/SKILL.md +106 -0
  246. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/CLAUDE.md +171 -0
  247. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/README.md +20 -0
  248. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/agents/construction-agent.mdx +358 -0
  249. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/agents/inception-agent.mdx +306 -0
  250. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/agents/master-agent.mdx +230 -0
  251. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/agents/operations-agent.mdx +344 -0
  252. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/agents/overview.mdx +187 -0
  253. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/architecture/flows.mdx +136 -0
  254. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/community.mdx +91 -0
  255. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/compare/overview.mdx +167 -0
  256. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/compare/vs-bmad.mdx +167 -0
  257. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/compare/vs-kiro.mdx +208 -0
  258. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/compare/vs-openspec.mdx +140 -0
  259. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/compare/vs-speckit.mdx +146 -0
  260. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/core-concepts/bolts.mdx +268 -0
  261. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/core-concepts/intents.mdx +164 -0
  262. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/core-concepts/memory-bank.mdx +209 -0
  263. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/core-concepts/standards.mdx +277 -0
  264. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/core-concepts/units.mdx +184 -0
  265. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/docs.json +148 -0
  266. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/faq.mdx +364 -0
  267. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/feedback.mdx +55 -0
  268. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/getting-started/installation.mdx +91 -0
  269. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/getting-started/quick-start.mdx +149 -0
  270. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/getting-started/vscode-extension.mdx +180 -0
  271. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/guides/bolt-types.mdx +182 -0
  272. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/images/extension-gallery/bolts.jpeg +0 -0
  273. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/images/extension-gallery/overview.jpeg +0 -0
  274. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/images/extension-gallery/specs.jpeg +0 -0
  275. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/images/extension-preview.png +0 -0
  276. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/images/favicon.png +0 -0
  277. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/images/hero-dark.svg +129 -0
  278. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/images/hero-light.svg +129 -0
  279. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/images/logo.png +0 -0
  280. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/images/old_favicon.svg +40 -0
  281. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/images/quickstart.cast +3788 -0
  282. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/images/quickstart.gif +0 -0
  283. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/index.mdx +179 -0
  284. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/methodology/ai-dlc-vs-agile.mdx +138 -0
  285. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/methodology/sdlc-reimagined.mdx +270 -0
  286. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/methodology/three-phases.mdx +225 -0
  287. package/src/iris_bundle/frameworks/iris-core/docs.iris.md/methodology/what-is-ai-dlc.mdx +96 -0
  288. package/src/iris_bundle/frameworks/iris-core/framework.yaml +4 -0
  289. package/src/iris_bundle/frameworks/iris-core/images/763995.png +0 -0
  290. package/src/iris_bundle/frameworks/iris-core/images/763995.svg +354 -0
  291. package/src/iris_bundle/frameworks/iris-core/images/favicon-64.png +0 -0
  292. package/src/iris_bundle/frameworks/iris-core/images/favicon.png +0 -0
  293. package/src/iris_bundle/frameworks/iris-core/images/logo.png +0 -0
  294. package/src/iris_bundle/frameworks/iris-core/images/old_favicon.svg +40 -0
  295. package/src/iris_bundle/frameworks/iris-core/images/specs_md_pixel_logo.png +0 -0
  296. package/src/iris_bundle/frameworks/iris-core/images/specs_md_pixel_logo_big.png +0 -0
  297. package/src/iris_bundle/frameworks/iris-core/interview.yaml +48 -0
  298. package/src/iris_bundle/frameworks/iris-core/memory-bank/PRFAQ.md +193 -0
  299. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/016-analytics-tracker/bolt.md +122 -0
  300. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/016-analytics-tracker/implementation-plan.md +172 -0
  301. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/016-analytics-tracker/implementation-walkthrough.md +56 -0
  302. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/016-analytics-tracker/test-walkthrough.md +96 -0
  303. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/017-privacy-documentation/bolt.md +72 -0
  304. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-artifact-parser-1/bolt.md +94 -0
  305. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-artifact-parser-1/implementation-plan.md +297 -0
  306. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-artifact-parser-1/implementation-walkthrough.md +56 -0
  307. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-artifact-parser-1/test-walkthrough.md +99 -0
  308. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-artifact-parser-2/bolt.md +88 -0
  309. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-artifact-parser-2/implementation-plan.md +196 -0
  310. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-artifact-parser-2/implementation-walkthrough.md +154 -0
  311. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-artifact-parser-2/test-walkthrough.md +119 -0
  312. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-extension-core-1/bolt.md +99 -0
  313. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-extension-core-1/implementation-plan.md +70 -0
  314. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-extension-core-1/implementation-walkthrough.md +45 -0
  315. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-extension-core-1/test-walkthrough.md +60 -0
  316. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-file-watcher-1/bolt.md +86 -0
  317. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-file-watcher-1/implementation-plan.md +154 -0
  318. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-file-watcher-1/implementation-walkthrough.md +43 -0
  319. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-file-watcher-1/test-walkthrough.md +74 -0
  320. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-1/bolt.md +89 -0
  321. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-1/implementation-plan.md +76 -0
  322. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-1/implementation-walkthrough.md +43 -0
  323. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-1/test-walkthrough.md +70 -0
  324. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-2/bolt.md +90 -0
  325. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-2/implementation-plan.md +93 -0
  326. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-2/implementation-walkthrough.md +44 -0
  327. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-2/test-walkthrough.md +54 -0
  328. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-3/bolt.md +90 -0
  329. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-3/implementation-plan.md +168 -0
  330. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-3/implementation-walkthrough.md +137 -0
  331. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-3/test-walkthrough.md +134 -0
  332. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-4/bolt.md +93 -0
  333. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-4/implementation-plan.md +176 -0
  334. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-4/implementation-walkthrough.md +159 -0
  335. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-4/test-walkthrough.md +105 -0
  336. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-5/bolt.md +104 -0
  337. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-sidebar-provider-5/implementation-plan.md +146 -0
  338. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-1/bolt.md +83 -0
  339. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-1/implementation-plan.md +161 -0
  340. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-1/implementation-walkthrough.md +58 -0
  341. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-1/test-walkthrough.md +104 -0
  342. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-2/bolt.md +83 -0
  343. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-2/implementation-plan.md +179 -0
  344. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-2/implementation-walkthrough.md +124 -0
  345. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-2/test-walkthrough.md +95 -0
  346. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-3/bolt.md +83 -0
  347. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-3/implementation-plan.md +196 -0
  348. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-3/implementation-walkthrough.md +207 -0
  349. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-3/test-walkthrough.md +194 -0
  350. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-4/bolt.md +92 -0
  351. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-4/implementation-plan.md +217 -0
  352. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-4/implementation-walkthrough.md +138 -0
  353. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-4/test-walkthrough.md +196 -0
  354. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-5/bolt.md +89 -0
  355. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-5/implementation-plan.md +181 -0
  356. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-5/implementation-walkthrough.md +160 -0
  357. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-webview-lit-migration-5/test-walkthrough.md +121 -0
  358. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-welcome-view-1/bolt.md +92 -0
  359. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-welcome-view-1/implementation-plan.md +73 -0
  360. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-welcome-view-1/implementation-walkthrough.md +44 -0
  361. package/src/iris_bundle/frameworks/iris-core/memory-bank/bolts/bolt-welcome-view-1/test-walkthrough.md +49 -0
  362. package/src/iris_bundle/frameworks/iris-core/memory-bank/glossary.md +197 -0
  363. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/001-multi-agent-orchestration/requirements.md +129 -0
  364. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/001-multi-agent-orchestration/research/approval-gates-simplification.md +839 -0
  365. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/001-multi-agent-orchestration/research/archive/approval-gates-analysis.md +331 -0
  366. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/001-multi-agent-orchestration/system-context.md +167 -0
  367. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/001-multi-agent-orchestration/units/construction-agent/unit-brief.md +111 -0
  368. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/001-multi-agent-orchestration/units/inception-agent/unit-brief.md +135 -0
  369. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/001-multi-agent-orchestration/units/master-agent/unit-brief.md +580 -0
  370. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/001-multi-agent-orchestration/units/operations-agent/unit-brief.md +72 -0
  371. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/001-multi-agent-orchestration/units.md +168 -0
  372. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/requirements.md +96 -0
  373. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/system-context.md +170 -0
  374. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/antigravity-installer/unit-brief.md +156 -0
  375. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/claude-code-installer/unit-brief.md +180 -0
  376. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/cline-installer/unit-brief.md +106 -0
  377. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/codex-installer/unit-brief.md +106 -0
  378. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/copilot-installer/unit-brief.md +139 -0
  379. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/cursor-installer/unit-brief.md +119 -0
  380. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/gemini-installer/unit-brief.md +107 -0
  381. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/installer-core/unit-brief.md +240 -0
  382. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/kilo-installer/unit-brief.md +106 -0
  383. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/kiro-installer/unit-brief.md +108 -0
  384. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/opencode-installer/unit-brief.md +107 -0
  385. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/roo-installer/unit-brief.md +107 -0
  386. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units/windsurf-installer/unit-brief.md +128 -0
  387. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/002-agentic-coding-tool-integration/units.md +188 -0
  388. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/003-memory-bank-system/requirements.md +196 -0
  389. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/003-memory-bank-system/system-context.md +181 -0
  390. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/003-memory-bank-system/units/artifact-storage/unit-brief.md +192 -0
  391. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/003-memory-bank-system/units/configuration-schema/unit-brief.md +204 -0
  392. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/003-memory-bank-system/units/context-loader/unit-brief.md +245 -0
  393. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/003-memory-bank-system/units.md +97 -0
  394. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/004-standards-system/requirements.md +125 -0
  395. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/004-standards-system/system-context.md +158 -0
  396. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/004-standards-system/units/facilitation-guides/unit-brief.md +250 -0
  397. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/004-standards-system/units/standards-catalog/unit-brief.md +355 -0
  398. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/004-standards-system/units/standards-templates/unit-brief.md +394 -0
  399. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/004-standards-system/units.md +110 -0
  400. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/005-testing-strategy/requirements.md +188 -0
  401. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/005-testing-strategy/system-context.md +229 -0
  402. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/005-testing-strategy/units/01-specification-contract-testing/unit-brief.md +197 -0
  403. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/005-testing-strategy/units/02-cli-installer-testing/unit-brief.md +377 -0
  404. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/005-testing-strategy/units/03-golden-dataset-management/unit-brief.md +465 -0
  405. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/005-testing-strategy/units/04-agent-behavior-evaluation/unit-brief.md +459 -0
  406. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/005-testing-strategy/units/05-cicd-integration/unit-brief.md +587 -0
  407. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/005-testing-strategy/units.md +332 -0
  408. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/006-brownfield-support/requirements.md +214 -0
  409. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/requirements.md +308 -0
  410. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/system-context.md +335 -0
  411. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units/001-analytics-tracker/construction-log.md +52 -0
  412. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units/001-analytics-tracker/stories/001-initialize-mixpanel.md +56 -0
  413. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units/001-analytics-tracker/stories/002-detect-shell.md +68 -0
  414. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units/001-analytics-tracker/stories/003-check-telemetry-disabled.md +66 -0
  415. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units/001-analytics-tracker/stories/004-track-installer-events.md +67 -0
  416. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units/001-analytics-tracker/stories/005-track-selection-events.md +66 -0
  417. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units/001-analytics-tracker/stories/006-cli-no-telemetry-flag.md +59 -0
  418. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units/001-analytics-tracker/unit-brief.md +191 -0
  419. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units/002-privacy-documentation/stories/001-create-privacy-md.md +58 -0
  420. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units/002-privacy-documentation/stories/002-add-readme-section.md +61 -0
  421. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units/002-privacy-documentation/unit-brief.md +158 -0
  422. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/007-installer-analytics/units.md +453 -0
  423. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/008-terminal-dashboard/requirements.md +222 -0
  424. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/008-terminal-dashboard/system-context.md +198 -0
  425. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/008-terminal-dashboard/units.md +275 -0
  426. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/009-versioning-strategy/requirements.md +308 -0
  427. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/009-versioning-strategy/system-context.md +273 -0
  428. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/009-versioning-strategy/units.md +312 -0
  429. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/010-smart-unit-decomposition/requirements.md +111 -0
  430. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/010-smart-unit-decomposition/system-context.md +154 -0
  431. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/010-smart-unit-decomposition/units.md +102 -0
  432. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/inception-log.md +101 -0
  433. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/requirements.md +282 -0
  434. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/system-context.md +114 -0
  435. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/artifact-parser/construction-log.md +57 -0
  436. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/artifact-parser/stories/001-memory-bank-schema.md +56 -0
  437. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/artifact-parser/stories/002-project-detection.md +54 -0
  438. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/artifact-parser/stories/003-artifact-parsing.md +57 -0
  439. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/artifact-parser/stories/004-frontmatter-parser.md +61 -0
  440. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/artifact-parser/stories/005-bolt-dependencies.md +58 -0
  441. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/artifact-parser/stories/006-activity-feed-derivation.md +70 -0
  442. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/artifact-parser/unit-brief.md +223 -0
  443. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/extension-core/construction-log.md +59 -0
  444. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/extension-core/stories/001-extension-activation.md +55 -0
  445. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/extension-core/stories/002-command-registration.md +54 -0
  446. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/extension-core/stories/003-file-operation-commands.md +57 -0
  447. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/extension-core/unit-brief.md +224 -0
  448. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/file-watcher/construction-log.md +52 -0
  449. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/file-watcher/stories/001-file-system-watcher.md +57 -0
  450. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/file-watcher/stories/002-debounced-refresh.md +53 -0
  451. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/file-watcher/unit-brief.md +173 -0
  452. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/construction-log.md +63 -0
  453. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/001-tree-data-provider.md +55 -0
  454. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/002-intent-unit-story-tree.md +56 -0
  455. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/003-bolt-tree.md +56 -0
  456. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/004-status-icons.md +55 -0
  457. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/005-pixel-logo-footer.md +55 -0
  458. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/006-webview-tab-architecture.md +62 -0
  459. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/007-command-center-bolts-tab.md +65 -0
  460. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/008-current-focus-card.md +62 -0
  461. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/009-up-next-queue.md +61 -0
  462. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/010-activity-feed-ui.md +63 -0
  463. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/011-filewatcher-statestore-integration.md +49 -0
  464. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/012-next-actions-ui.md +57 -0
  465. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/013-start-bolt-action.md +72 -0
  466. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/014-intent-selection-strategies.md +54 -0
  467. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/015-persist-expanded-state.md +56 -0
  468. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/016-bolt-filtering.md +72 -0
  469. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/017-activity-open-button.md +50 -0
  470. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/018-specs-view.md +63 -0
  471. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/stories/019-overview-view.md +84 -0
  472. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/sidebar-provider/unit-brief.md +305 -0
  473. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/webview-lit-migration/stories/020-fix-infinite-rerender.md +144 -0
  474. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/webview-lit-migration/stories/021-remove-duplicate-files.md +94 -0
  475. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/webview-lit-migration/stories/022-setup-esbuild.md +156 -0
  476. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/webview-lit-migration/stories/023-lit-scaffold.md +202 -0
  477. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/webview-lit-migration/stories/024-tabs-component.md +161 -0
  478. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/webview-lit-migration/stories/025-bolts-view-components.md +182 -0
  479. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/webview-lit-migration/stories/026-specs-view-components.md +223 -0
  480. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/webview-lit-migration/stories/027-overview-view-components.md +391 -0
  481. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/webview-lit-migration/stories/028-state-context.md +317 -0
  482. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/webview-lit-migration/stories/029-ipc-typed-messaging.md +396 -0
  483. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/webview-lit-migration/unit-brief.md +133 -0
  484. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/welcome-view/construction-log.md +58 -0
  485. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/welcome-view/stories/001-welcome-view-ui.md +57 -0
  486. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/welcome-view/stories/002-install-button-flow.md +55 -0
  487. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/welcome-view/stories/003-post-installation-detection.md +55 -0
  488. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units/welcome-view/unit-brief.md +211 -0
  489. package/src/iris_bundle/frameworks/iris-core/memory-bank/intents/011-vscode-extension/units.md +129 -0
  490. package/src/iris_bundle/frameworks/iris-core/memory-bank/maintenance-log.md +21 -0
  491. package/src/iris_bundle/frameworks/iris-core/memory-bank/project.yaml +16 -0
  492. package/src/iris_bundle/frameworks/iris-core/memory-bank/research/test_strategy/promptfoo-specsmd-tutorial.md +911 -0
  493. package/src/iris_bundle/frameworks/iris-core/memory-bank/research/test_strategy/promptfoo-tutorial.md +796 -0
  494. package/src/iris_bundle/frameworks/iris-core/memory-bank/research/test_strategy/testing-strategy.md +1057 -0
  495. package/src/iris_bundle/frameworks/iris-core/memory-bank/research/unified-modernization-model.md +559 -0
  496. package/src/iris_bundle/frameworks/iris-core/memory-bank/research/vibe-to-production-academic-research.md +578 -0
  497. package/src/iris_bundle/frameworks/iris-core/memory-bank/research/vibe-to-spec-flow-options.md +547 -0
  498. package/src/iris_bundle/frameworks/iris-core/memory-bank/standards/coding-standards.md +217 -0
  499. package/src/iris_bundle/frameworks/iris-core/memory-bank/standards/output-formatting.md +202 -0
  500. package/src/iris_bundle/frameworks/iris-core/memory-bank/standards/skill-template.md +308 -0
  501. package/src/iris_bundle/frameworks/iris-core/memory-bank/standards/system-architecture.md +177 -0
  502. package/src/iris_bundle/frameworks/iris-core/memory-bank/standards/tech-stack.md +88 -0
  503. package/src/iris_bundle/frameworks/iris-core/memory-bank/story-index.md +154 -0
  504. package/src/iris_bundle/frameworks/iris-core/memory-bank/term-mappings.md +121 -0
  505. package/src/iris_bundle/frameworks/iris-core/pack.yaml +2 -0
  506. package/src/iris_bundle/frameworks/iris-core/package.json +11 -0
  507. package/src/iris_bundle/frameworks/iris-core/policy.yaml +73 -0
  508. package/src/iris_bundle/frameworks/iris-core/resources/ai-dlc-specification.md +286 -0
  509. package/src/iris_bundle/frameworks/iris-core/resources/aidlc.pdf +0 -0
  510. package/src/iris_bundle/frameworks/iris-core/resources/images/aidlc-core-framework.png +0 -0
  511. package/src/iris_bundle/frameworks/iris-core/resources/images/aidlc-phases-detail.png +0 -0
  512. package/src/iris_bundle/frameworks/iris-core/resources/images/aidlc-workflow-steps.png +0 -0
  513. package/src/iris_bundle/frameworks/iris-core/routes.yaml +98 -0
  514. package/src/iris_bundle/frameworks/iris-core/src/README.md +322 -0
  515. package/src/iris_bundle/frameworks/iris-core/src/__tests__/schemas/agent.schema.yaml +20 -0
  516. package/src/iris_bundle/frameworks/iris-core/src/__tests__/schemas/catalog.schema.yaml +60 -0
  517. package/src/iris_bundle/frameworks/iris-core/src/__tests__/schemas/context-config.schema.yaml +24 -0
  518. package/src/iris_bundle/frameworks/iris-core/src/__tests__/schemas/memory-bank.schema.yaml +61 -0
  519. package/src/iris_bundle/frameworks/iris-core/src/__tests__/schemas/skill.schema.yaml +22 -0
  520. package/src/iris_bundle/frameworks/iris-core/src/__tests__/unit/analytics/analytics.test.ts +240 -0
  521. package/src/iris_bundle/frameworks/iris-core/src/__tests__/unit/architecture/bolt-type-agnostic.test.ts +282 -0
  522. package/src/iris_bundle/frameworks/iris-core/src/__tests__/unit/flow-consistency/code-examples.test.ts +93 -0
  523. package/src/iris_bundle/frameworks/iris-core/src/__tests__/unit/flow-consistency/helpers.ts +79 -0
  524. package/src/iris_bundle/frameworks/iris-core/src/__tests__/unit/flow-consistency/placeholder-consistency.test.ts +76 -0
  525. package/src/iris_bundle/frameworks/iris-core/src/__tests__/unit/flow-consistency/reference-integrity.test.ts +92 -0
  526. package/src/iris_bundle/frameworks/iris-core/src/__tests__/unit/flow-consistency/terminology-consistency.test.ts +72 -0
  527. package/src/iris_bundle/frameworks/iris-core/src/__tests__/unit/schema-validation/markdown-schema.test.ts +55 -0
  528. package/src/iris_bundle/frameworks/iris-core/src/__tests__/unit/schema-validation/yaml-config-schema.test.ts +53 -0
  529. package/src/iris_bundle/frameworks/iris-core/src/bin/cli.js +21 -0
  530. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/README.md +372 -0
  531. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/agents/construction-agent.md +80 -0
  532. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/agents/inception-agent.md +97 -0
  533. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/agents/master-agent.md +61 -0
  534. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/agents/operations-agent.md +89 -0
  535. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/commands/construction-agent.md +63 -0
  536. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/commands/inception-agent.md +55 -0
  537. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/commands/master-agent.md +47 -0
  538. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/commands/operations-agent.md +77 -0
  539. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/context-config.yaml +67 -0
  540. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/memory-bank.yaml +104 -0
  541. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/quick-start.md +322 -0
  542. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/construction/bolt-list.md +163 -0
  543. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/construction/bolt-replan.md +345 -0
  544. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/construction/bolt-start.md +442 -0
  545. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/construction/bolt-status.md +185 -0
  546. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/construction/navigator.md +196 -0
  547. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/inception/bolt-plan.md +372 -0
  548. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/inception/context.md +171 -0
  549. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/inception/intent-create.md +211 -0
  550. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/inception/intent-list.md +124 -0
  551. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/inception/navigator.md +207 -0
  552. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/inception/requirements.md +227 -0
  553. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/inception/review.md +248 -0
  554. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/inception/story-create.md +304 -0
  555. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/inception/units.md +278 -0
  556. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/master/analyze-context.md +239 -0
  557. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/master/answer-question.md +141 -0
  558. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/master/explain-flow.md +158 -0
  559. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/master/project-init.md +281 -0
  560. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/master/route-request.md +126 -0
  561. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/operations/build.md +237 -0
  562. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/operations/deploy.md +259 -0
  563. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/operations/monitor.md +265 -0
  564. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/operations/navigator.md +209 -0
  565. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/skills/operations/verify.md +224 -0
  566. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/bolt-template.md +226 -0
  567. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +49 -0
  568. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +55 -0
  569. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +67 -0
  570. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +62 -0
  571. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +528 -0
  572. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/bolt-types/simple-construction-bolt.md +347 -0
  573. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/bolt-types/spike-bolt.md +240 -0
  574. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/construction-log-template.md +129 -0
  575. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/standards/coding-standards.md +29 -0
  576. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/standards/system-architecture.md +22 -0
  577. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/construction/standards/tech-stack.md +19 -0
  578. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/inception/inception-log-template.md +134 -0
  579. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/inception/project/README.md +55 -0
  580. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/inception/requirements-template.md +144 -0
  581. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/inception/stories-template.md +38 -0
  582. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/inception/story-template.md +147 -0
  583. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/inception/system-context-template.md +29 -0
  584. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/inception/unit-brief-template.md +177 -0
  585. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/inception/units-template.md +52 -0
  586. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/standards/catalog.yaml +345 -0
  587. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/standards/coding-standards.guide.md +553 -0
  588. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/standards/data-stack.guide.md +162 -0
  589. package/src/iris_bundle/frameworks/iris-core/src/flows/aidlc/templates/standards/tech-stack.guide.md +280 -0
  590. package/src/iris_bundle/frameworks/iris-core/src/lib/InstallerFactory.js +36 -0
  591. package/src/iris_bundle/frameworks/iris-core/src/lib/analytics/env-detector.js +92 -0
  592. package/src/iris_bundle/frameworks/iris-core/src/lib/analytics/index.js +22 -0
  593. package/src/iris_bundle/frameworks/iris-core/src/lib/analytics/machine-id.js +33 -0
  594. package/src/iris_bundle/frameworks/iris-core/src/lib/analytics/tracker.js +232 -0
  595. package/src/iris_bundle/frameworks/iris-core/src/lib/cli-utils.js +342 -0
  596. package/src/iris_bundle/frameworks/iris-core/src/lib/constants.js +32 -0
  597. package/src/iris_bundle/frameworks/iris-core/src/lib/installer.js +402 -0
  598. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/AntigravityInstaller.js +22 -0
  599. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/ClaudeInstaller.js +85 -0
  600. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/ClineInstaller.js +21 -0
  601. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/CodexInstaller.js +21 -0
  602. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/CopilotInstaller.js +113 -0
  603. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/CursorInstaller.js +63 -0
  604. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/GeminiInstaller.js +75 -0
  605. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/KiroInstaller.js +22 -0
  606. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/OpenCodeInstaller.js +22 -0
  607. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/RooInstaller.js +22 -0
  608. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/ToolInstaller.js +73 -0
  609. package/src/iris_bundle/frameworks/iris-core/src/lib/installers/WindsurfInstaller.js +76 -0
  610. package/src/iris_bundle/frameworks/iris-core/src/lib/markdown-validator.ts +175 -0
  611. package/src/iris_bundle/frameworks/iris-core/src/lib/yaml-validator.ts +99 -0
  612. package/src/iris_bundle/frameworks/iris-core/src/package-lock.json +9922 -0
  613. package/src/iris_bundle/frameworks/iris-core/src/package.json +118 -0
  614. package/src/iris_bundle/frameworks/iris-core/src/scripts/artifact-validator.js +594 -0
  615. package/src/iris_bundle/frameworks/iris-core/src/scripts/bolt-complete.js +606 -0
  616. package/src/iris_bundle/frameworks/iris-core/src/scripts/status-integrity.js +598 -0
  617. package/src/iris_bundle/frameworks/iris-core/src/specs_md_pixel_logo.png +0 -0
  618. package/src/iris_bundle/frameworks/iris-core/src/tsconfig.json +16 -0
  619. package/src/iris_bundle/frameworks/iris-core/src/vitest.config.ts +12 -0
  620. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/.claude/skills/frontend-design/SKILL.md +42 -0
  621. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/.mocharc.json +5 -0
  622. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/.vscodeignore +17 -0
  623. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/DEVGUIDE.md +103 -0
  624. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/LICENSE +21 -0
  625. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/README.md +198 -0
  626. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/index.html +635 -0
  627. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-1-metrics-dashboard.html +542 -0
  628. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-10-dual-view-focus.html +1105 -0
  629. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-11-dual-view-grouped.html +2304 -0
  630. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-12-dependency-graph.html +1400 -0
  631. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-13-hierarchy-explorer.html +1278 -0
  632. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-14-swimlane-deps.html +1370 -0
  633. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-2-pipeline-flow.html +673 -0
  634. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-3-focus-mode.html +898 -0
  635. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-4-kanban-board.html +858 -0
  636. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-5-timeline.html +890 -0
  637. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-6-activity-feed.html +923 -0
  638. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-7-heatmap-grid.html +932 -0
  639. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-8-2-spec.md +657 -0
  640. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-8-2.html +2098 -0
  641. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-8-command-center.html +2043 -0
  642. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-8a-command-center-timeline.html +1222 -0
  643. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/design-mockups/variation-9-dual-view.html +1101 -0
  644. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/esbuild.webview.mjs +70 -0
  645. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/eslint.config.mjs +36 -0
  646. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/package-lock.json +5712 -0
  647. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/package.json +116 -0
  648. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/resources/extension-preview.png +0 -0
  649. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/resources/extension_icon.svg +40 -0
  650. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/resources/favicon-64.png +0 -0
  651. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/resources/favicon.png +0 -0
  652. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/resources/favicon.svg +40 -0
  653. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/resources/logo.png +0 -0
  654. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/extension.ts +142 -0
  655. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/parser/activityFeed.ts +184 -0
  656. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/parser/artifactParser.ts +477 -0
  657. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/parser/boltTypeParser.ts +191 -0
  658. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/parser/dependencyComputation.ts +157 -0
  659. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/parser/frontmatterParser.ts +144 -0
  660. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/parser/index.ts +93 -0
  661. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/parser/memoryBankSchema.ts +140 -0
  662. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/parser/projectDetection.ts +132 -0
  663. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/parser/types.ts +241 -0
  664. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/sidebar/iconHelper.ts +82 -0
  665. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/sidebar/index.ts +85 -0
  666. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/sidebar/treeBuilder.ts +289 -0
  667. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/sidebar/treeProvider.ts +225 -0
  668. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/sidebar/types.ts +254 -0
  669. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/sidebar/webviewMessaging.ts +306 -0
  670. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/sidebar/webviewProvider.ts +866 -0
  671. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/state/index.ts +114 -0
  672. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/state/selectors.ts +652 -0
  673. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/state/stateStore.ts +419 -0
  674. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/state/types.ts +311 -0
  675. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/parser/activityFeed.test.ts +269 -0
  676. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/parser/artifactParser.test.ts +440 -0
  677. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/parser/dependencyComputation.test.ts +288 -0
  678. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/parser/frontmatterParser.test.ts +191 -0
  679. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/parser/memoryBankSchema.test.ts +185 -0
  680. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/parser/projectDetection.test.ts +146 -0
  681. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/runTest.ts +20 -0
  682. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/sidebar/treeBuilder.test.ts +329 -0
  683. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/sidebar/types.test.ts +239 -0
  684. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/sidebar/webviewContent.test.ts +67 -0
  685. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/sidebar/webviewMessaging.test.ts +369 -0
  686. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/sidebar/webviewProvider.test.ts +282 -0
  687. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/state/selectors.test.ts +457 -0
  688. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/state/stateStore.test.ts +622 -0
  689. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/watcher/debounce.test.ts +155 -0
  690. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/test/watcher/fileWatcher.test.ts +77 -0
  691. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/watcher/debounce.ts +70 -0
  692. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/watcher/fileWatcher.ts +147 -0
  693. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/watcher/index.ts +39 -0
  694. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/watcher/types.ts +43 -0
  695. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/app.ts +870 -0
  696. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/bolts/activity-feed.ts +232 -0
  697. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/bolts/activity-item.ts +208 -0
  698. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/bolts/bolts-view.ts +201 -0
  699. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/bolts/completion-item.ts +299 -0
  700. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/bolts/completions-section.ts +197 -0
  701. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/bolts/current-bolts.ts +184 -0
  702. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/bolts/focus-card.ts +431 -0
  703. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/bolts/focus-section.ts +179 -0
  704. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/bolts/queue-item.ts +306 -0
  705. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/bolts/queue-section.ts +198 -0
  706. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/bolts/stories-list.ts +151 -0
  707. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/shared/base-element.ts +29 -0
  708. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/shared/empty-state.ts +82 -0
  709. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/shared/progress-bar.ts +120 -0
  710. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/shared/progress-ring.ts +100 -0
  711. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/shared/stage-pipeline.ts +133 -0
  712. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/components/tabs/view-tabs.ts +127 -0
  713. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/html.ts +542 -0
  714. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/index.ts +104 -0
  715. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/lit/index.ts +16 -0
  716. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/scripts.ts +241 -0
  717. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/styles/theme.ts +50 -0
  718. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/styles.ts +1194 -0
  719. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/types/messages.ts +40 -0
  720. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/types/vscode.ts +13 -0
  721. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/utils/messaging.ts +57 -0
  722. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/utils.ts +16 -0
  723. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/webview/vscode-api.ts +14 -0
  724. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/welcome/WelcomeViewProvider.ts +254 -0
  725. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/welcome/index.ts +9 -0
  726. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/src/welcome/installHandler.ts +82 -0
  727. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/tsconfig.json +30 -0
  728. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/tsconfig.test.json +26 -0
  729. package/src/iris_bundle/frameworks/iris-core/vs-code-extension/tsconfig.webview.json +23 -0
@@ -0,0 +1,2098 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Variation 8-2: Command Center + Activity + Specs</title>
7
+ <style>
8
+ /* VS Code Theme Variables */
9
+ :root {
10
+ --vscode-editor-background: #1e1e1e;
11
+ --vscode-editor-foreground: #cccccc;
12
+ --vscode-sideBar-background: #252526;
13
+ --vscode-sideBarSectionHeader-background: #2d2d2d;
14
+ --vscode-input-background: #3c3c3c;
15
+ --vscode-input-border: #3c3c3c;
16
+ --vscode-list-hoverBackground: #2a2d2e;
17
+ --vscode-badge-background: #4d4d4d;
18
+ --vscode-badge-foreground: #ffffff;
19
+ --vscode-descriptionForeground: #858585;
20
+
21
+ --status-complete: #22c55e;
22
+ --status-active: #f97316;
23
+ --status-pending: #6b7280;
24
+ --status-blocked: #ef4444;
25
+ --status-info: #3b82f6;
26
+ --accent-primary: #f97316;
27
+ }
28
+
29
+ .theme-light {
30
+ --vscode-editor-background: #ffffff;
31
+ --vscode-editor-foreground: #333333;
32
+ --vscode-sideBar-background: #f3f3f3;
33
+ --vscode-sideBarSectionHeader-background: #e8e8e8;
34
+ --vscode-input-background: #ffffff;
35
+ --vscode-input-border: #cecece;
36
+ --vscode-list-hoverBackground: #e8e8e8;
37
+ --vscode-descriptionForeground: #717171;
38
+ }
39
+
40
+ * {
41
+ margin: 0;
42
+ padding: 0;
43
+ box-sizing: border-box;
44
+ }
45
+
46
+ body {
47
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
48
+ background: var(--vscode-editor-background);
49
+ color: var(--vscode-editor-foreground);
50
+ font-size: 13px;
51
+ }
52
+
53
+ .sidebar {
54
+ width: 360px;
55
+ min-height: 100vh;
56
+ background: var(--vscode-sideBar-background);
57
+ border-right: 1px solid var(--vscode-input-border);
58
+ display: flex;
59
+ flex-direction: column;
60
+ }
61
+
62
+ .header {
63
+ padding: 10px 12px;
64
+ background: var(--vscode-sideBarSectionHeader-background);
65
+ border-bottom: 1px solid var(--vscode-input-border);
66
+ display: flex;
67
+ justify-content: space-between;
68
+ align-items: center;
69
+ }
70
+
71
+ .header-title {
72
+ font-size: 11px;
73
+ font-weight: 600;
74
+ text-transform: uppercase;
75
+ letter-spacing: 0.5px;
76
+ }
77
+
78
+ .header-actions {
79
+ display: flex;
80
+ gap: 4px;
81
+ }
82
+
83
+ .icon-btn {
84
+ background: none;
85
+ border: none;
86
+ color: var(--vscode-descriptionForeground);
87
+ cursor: pointer;
88
+ padding: 4px 6px;
89
+ border-radius: 4px;
90
+ font-size: 14px;
91
+ transition: all 0.15s;
92
+ }
93
+
94
+ .icon-btn:hover {
95
+ background: var(--vscode-list-hoverBackground);
96
+ color: var(--vscode-editor-foreground);
97
+ }
98
+
99
+ /* Main View Tabs */
100
+ .view-tabs {
101
+ display: flex;
102
+ background: var(--vscode-editor-background);
103
+ border-bottom: 1px solid var(--vscode-input-border);
104
+ }
105
+
106
+ .view-tab {
107
+ flex: 1;
108
+ padding: 10px;
109
+ font-size: 11px;
110
+ font-weight: 600;
111
+ text-align: center;
112
+ background: none;
113
+ border: none;
114
+ color: var(--vscode-descriptionForeground);
115
+ cursor: pointer;
116
+ border-bottom: 2px solid transparent;
117
+ transition: all 0.15s;
118
+ }
119
+
120
+ .view-tab:hover {
121
+ color: var(--vscode-editor-foreground);
122
+ background: var(--vscode-list-hoverBackground);
123
+ }
124
+
125
+ .view-tab.active {
126
+ color: var(--accent-primary);
127
+ border-bottom-color: var(--accent-primary);
128
+ }
129
+
130
+ /* Theme Toggle */
131
+ .theme-toggle {
132
+ padding: 8px 12px;
133
+ background: var(--vscode-editor-background);
134
+ border-top: 1px solid var(--vscode-input-border);
135
+ display: flex;
136
+ gap: 8px;
137
+ margin-top: auto;
138
+ }
139
+
140
+ .theme-btn {
141
+ flex: 1;
142
+ padding: 6px;
143
+ font-size: 10px;
144
+ border: 1px solid var(--vscode-input-border);
145
+ background: var(--vscode-input-background);
146
+ color: var(--vscode-editor-foreground);
147
+ border-radius: 4px;
148
+ cursor: pointer;
149
+ transition: all 0.15s;
150
+ }
151
+
152
+ .theme-btn.active {
153
+ background: var(--accent-primary);
154
+ border-color: var(--accent-primary);
155
+ color: white;
156
+ }
157
+
158
+ /* View Containers */
159
+ .view-container {
160
+ display: none;
161
+ flex: 1;
162
+ overflow-y: auto;
163
+ }
164
+
165
+ .view-container.active {
166
+ display: flex;
167
+ flex-direction: column;
168
+ }
169
+
170
+ /* ==================== COMMAND VIEW ==================== */
171
+ .mission-status {
172
+ padding: 16px;
173
+ background: linear-gradient(135deg, var(--vscode-editor-background) 0%, rgba(249, 115, 22, 0.1) 100%);
174
+ border-bottom: 1px solid var(--vscode-input-border);
175
+ }
176
+
177
+ .mission-label {
178
+ font-size: 9px;
179
+ color: var(--accent-primary);
180
+ text-transform: uppercase;
181
+ letter-spacing: 1px;
182
+ margin-bottom: 4px;
183
+ }
184
+
185
+ .mission-title {
186
+ font-size: 14px;
187
+ font-weight: 600;
188
+ margin-bottom: 8px;
189
+ }
190
+
191
+ .mission-stats {
192
+ display: flex;
193
+ gap: 16px;
194
+ }
195
+
196
+ .mission-stat {
197
+ display: flex;
198
+ align-items: center;
199
+ gap: 6px;
200
+ }
201
+
202
+ .mission-stat-dot {
203
+ width: 8px;
204
+ height: 8px;
205
+ border-radius: 50%;
206
+ }
207
+
208
+ .mission-stat-value {
209
+ font-size: 12px;
210
+ font-weight: 600;
211
+ }
212
+
213
+ .mission-stat-label {
214
+ font-size: 10px;
215
+ color: var(--vscode-descriptionForeground);
216
+ }
217
+
218
+ /* Focus Section */
219
+ .focus-section {
220
+ padding: 16px;
221
+ border-bottom: 1px solid var(--vscode-input-border);
222
+ }
223
+
224
+ .section-label {
225
+ font-size: 9px;
226
+ color: var(--vscode-descriptionForeground);
227
+ text-transform: uppercase;
228
+ letter-spacing: 0.5px;
229
+ margin-bottom: 10px;
230
+ display: flex;
231
+ align-items: center;
232
+ gap: 6px;
233
+ }
234
+
235
+ .section-label-icon {
236
+ font-size: 12px;
237
+ }
238
+
239
+ /* Focus Card */
240
+ .focus-card {
241
+ background: var(--vscode-sideBar-background);
242
+ border: 2px solid var(--accent-primary);
243
+ border-radius: 8px;
244
+ overflow: hidden;
245
+ }
246
+
247
+ .focus-card-header {
248
+ padding: 12px;
249
+ background: rgba(249, 115, 22, 0.1);
250
+ display: flex;
251
+ justify-content: space-between;
252
+ align-items: flex-start;
253
+ cursor: pointer;
254
+ transition: background 0.15s;
255
+ }
256
+
257
+ .focus-card-header:hover {
258
+ background: rgba(249, 115, 22, 0.15);
259
+ }
260
+
261
+ .focus-card-title {
262
+ font-size: 13px;
263
+ font-weight: 600;
264
+ }
265
+
266
+ .focus-card-subtitle {
267
+ font-size: 10px;
268
+ color: var(--vscode-descriptionForeground);
269
+ margin-top: 2px;
270
+ }
271
+
272
+ .focus-card-badge {
273
+ font-size: 9px;
274
+ padding: 3px 8px;
275
+ border-radius: 12px;
276
+ background: var(--accent-primary);
277
+ color: white;
278
+ }
279
+
280
+ .focus-card-body {
281
+ padding: 0;
282
+ max-height: 0;
283
+ overflow: hidden;
284
+ transition: max-height 0.3s ease, padding 0.3s ease;
285
+ }
286
+
287
+ .focus-card.expanded .focus-card-body {
288
+ max-height: 400px;
289
+ padding: 12px;
290
+ }
291
+
292
+ /* Progress Ring */
293
+ .progress-ring-container {
294
+ display: flex;
295
+ align-items: center;
296
+ gap: 16px;
297
+ margin-bottom: 12px;
298
+ }
299
+
300
+ .progress-ring {
301
+ width: 64px;
302
+ height: 64px;
303
+ position: relative;
304
+ }
305
+
306
+ .progress-ring svg {
307
+ transform: rotate(-90deg);
308
+ }
309
+
310
+ .progress-ring-bg {
311
+ fill: none;
312
+ stroke: var(--vscode-input-background);
313
+ stroke-width: 6;
314
+ }
315
+
316
+ .progress-ring-fill {
317
+ fill: none;
318
+ stroke: var(--accent-primary);
319
+ stroke-width: 6;
320
+ stroke-linecap: round;
321
+ stroke-dasharray: 157;
322
+ transition: stroke-dashoffset 0.5s ease;
323
+ }
324
+
325
+ .progress-ring-text {
326
+ position: absolute;
327
+ top: 50%;
328
+ left: 50%;
329
+ transform: translate(-50%, -50%);
330
+ font-size: 14px;
331
+ font-weight: 700;
332
+ }
333
+
334
+ .progress-details {
335
+ flex: 1;
336
+ }
337
+
338
+ .progress-stage {
339
+ font-size: 11px;
340
+ margin-bottom: 4px;
341
+ }
342
+
343
+ .progress-stage strong {
344
+ color: var(--accent-primary);
345
+ }
346
+
347
+ .progress-info {
348
+ font-size: 10px;
349
+ color: var(--vscode-descriptionForeground);
350
+ }
351
+
352
+ /* Stage Pipeline */
353
+ .stage-pipeline {
354
+ display: flex;
355
+ align-items: center;
356
+ justify-content: space-between;
357
+ margin-bottom: 12px;
358
+ padding: 8px;
359
+ background: var(--vscode-editor-background);
360
+ border-radius: 6px;
361
+ }
362
+
363
+ .pipeline-stage {
364
+ display: flex;
365
+ flex-direction: column;
366
+ align-items: center;
367
+ gap: 4px;
368
+ cursor: pointer;
369
+ transition: transform 0.15s;
370
+ }
371
+
372
+ .pipeline-stage:hover {
373
+ transform: scale(1.1);
374
+ }
375
+
376
+ .pipeline-node {
377
+ width: 28px;
378
+ height: 28px;
379
+ border-radius: 50%;
380
+ display: flex;
381
+ align-items: center;
382
+ justify-content: center;
383
+ font-size: 10px;
384
+ font-weight: 600;
385
+ }
386
+
387
+ .pipeline-node.complete {
388
+ background: var(--status-complete);
389
+ color: white;
390
+ }
391
+
392
+ .pipeline-node.active {
393
+ background: var(--accent-primary);
394
+ color: white;
395
+ box-shadow: 0 0 12px rgba(249, 115, 22, 0.6);
396
+ }
397
+
398
+ .pipeline-node.pending {
399
+ background: var(--vscode-input-background);
400
+ color: var(--vscode-descriptionForeground);
401
+ border: 1px dashed var(--vscode-input-border);
402
+ }
403
+
404
+ .pipeline-label {
405
+ font-size: 8px;
406
+ color: var(--vscode-descriptionForeground);
407
+ text-transform: uppercase;
408
+ }
409
+
410
+ .pipeline-connector {
411
+ flex: 1;
412
+ height: 2px;
413
+ background: var(--vscode-input-border);
414
+ margin: 0 -4px;
415
+ margin-bottom: 16px;
416
+ }
417
+
418
+ .pipeline-connector.complete {
419
+ background: var(--status-complete);
420
+ }
421
+
422
+ /* Stories List */
423
+ .stories-section {
424
+ margin-bottom: 12px;
425
+ }
426
+
427
+ .stories-header {
428
+ font-size: 10px;
429
+ color: var(--vscode-descriptionForeground);
430
+ margin-bottom: 6px;
431
+ display: flex;
432
+ justify-content: space-between;
433
+ }
434
+
435
+ .stories-list {
436
+ display: flex;
437
+ flex-direction: column;
438
+ gap: 4px;
439
+ max-height: 100px;
440
+ overflow-y: auto;
441
+ }
442
+
443
+ .story-item {
444
+ display: flex;
445
+ align-items: center;
446
+ gap: 8px;
447
+ padding: 6px 8px;
448
+ background: var(--vscode-editor-background);
449
+ border-radius: 4px;
450
+ cursor: pointer;
451
+ transition: all 0.15s;
452
+ }
453
+
454
+ .story-item:hover {
455
+ background: var(--vscode-list-hoverBackground);
456
+ }
457
+
458
+ .story-checkbox {
459
+ width: 14px;
460
+ height: 14px;
461
+ border-radius: 3px;
462
+ border: 1px solid var(--vscode-input-border);
463
+ display: flex;
464
+ align-items: center;
465
+ justify-content: center;
466
+ font-size: 10px;
467
+ color: white;
468
+ }
469
+
470
+ .story-checkbox.checked {
471
+ background: var(--status-complete);
472
+ border-color: var(--status-complete);
473
+ }
474
+
475
+ .story-name {
476
+ flex: 1;
477
+ font-size: 11px;
478
+ }
479
+
480
+ .story-item.completed .story-name {
481
+ text-decoration: line-through;
482
+ color: var(--vscode-descriptionForeground);
483
+ }
484
+
485
+ /* Focus Actions */
486
+ .focus-actions {
487
+ display: flex;
488
+ gap: 8px;
489
+ }
490
+
491
+ .action-btn {
492
+ flex: 1;
493
+ padding: 10px;
494
+ font-size: 11px;
495
+ font-weight: 500;
496
+ border: none;
497
+ border-radius: 6px;
498
+ cursor: pointer;
499
+ transition: all 0.15s;
500
+ }
501
+
502
+ .action-btn-primary {
503
+ background: var(--accent-primary);
504
+ color: white;
505
+ }
506
+
507
+ .action-btn-primary:hover {
508
+ filter: brightness(1.1);
509
+ }
510
+
511
+ .action-btn-secondary {
512
+ background: var(--vscode-input-background);
513
+ color: var(--vscode-editor-foreground);
514
+ border: 1px solid var(--vscode-input-border);
515
+ }
516
+
517
+ .action-btn-secondary:hover {
518
+ background: var(--vscode-list-hoverBackground);
519
+ }
520
+
521
+ .action-btn-complete {
522
+ background: var(--status-complete);
523
+ color: white;
524
+ }
525
+
526
+ /* ==================== ACTIVITY SECTION ==================== */
527
+ .activity-section {
528
+ padding: 12px;
529
+ padding-top: 0;
530
+ margin-top: auto;
531
+ background: var(--vscode-editor-background);
532
+ display: flex;
533
+ flex-direction: column;
534
+ min-height: 120px;
535
+ max-height: 400px;
536
+ }
537
+
538
+ .activity-resize-handle {
539
+ height: 8px;
540
+ background: var(--vscode-input-border);
541
+ cursor: ns-resize;
542
+ display: flex;
543
+ align-items: center;
544
+ justify-content: center;
545
+ margin: 0 -12px;
546
+ transition: background 0.15s;
547
+ }
548
+
549
+ .activity-resize-handle:hover,
550
+ .activity-resize-handle.dragging {
551
+ background: var(--accent-primary);
552
+ }
553
+
554
+ .activity-resize-handle::after {
555
+ content: '';
556
+ width: 32px;
557
+ height: 3px;
558
+ background: var(--vscode-descriptionForeground);
559
+ border-radius: 2px;
560
+ opacity: 0.5;
561
+ }
562
+
563
+ .activity-resize-handle:hover::after {
564
+ opacity: 1;
565
+ background: white;
566
+ }
567
+
568
+ .activity-header {
569
+ display: flex;
570
+ justify-content: space-between;
571
+ align-items: center;
572
+ margin-bottom: 10px;
573
+ }
574
+
575
+ .activity-title {
576
+ font-size: 10px;
577
+ font-weight: 600;
578
+ text-transform: uppercase;
579
+ color: var(--vscode-descriptionForeground);
580
+ display: flex;
581
+ align-items: center;
582
+ gap: 6px;
583
+ }
584
+
585
+ .activity-filter {
586
+ display: flex;
587
+ gap: 4px;
588
+ }
589
+
590
+ .activity-filter-btn {
591
+ padding: 3px 8px;
592
+ font-size: 9px;
593
+ border: 1px solid var(--vscode-input-border);
594
+ background: var(--vscode-input-background);
595
+ color: var(--vscode-editor-foreground);
596
+ border-radius: 10px;
597
+ cursor: pointer;
598
+ transition: all 0.15s;
599
+ }
600
+
601
+ .activity-filter-btn.active {
602
+ background: var(--accent-primary);
603
+ border-color: var(--accent-primary);
604
+ color: white;
605
+ }
606
+
607
+ .activity-list {
608
+ display: flex;
609
+ flex-direction: column;
610
+ gap: 2px;
611
+ flex: 1;
612
+ min-height: 0;
613
+ overflow-y: auto;
614
+ }
615
+
616
+ .activity-item {
617
+ display: flex;
618
+ align-items: flex-start;
619
+ gap: 10px;
620
+ padding: 8px 10px;
621
+ background: var(--vscode-editor-background);
622
+ border-radius: 6px;
623
+ cursor: pointer;
624
+ transition: all 0.15s;
625
+ position: relative;
626
+ }
627
+
628
+ .activity-item:hover {
629
+ background: var(--vscode-list-hoverBackground);
630
+ }
631
+
632
+ .activity-item::before {
633
+ content: '';
634
+ position: absolute;
635
+ left: 19px;
636
+ top: 32px;
637
+ bottom: -6px;
638
+ width: 2px;
639
+ background: var(--vscode-input-border);
640
+ }
641
+
642
+ .activity-item:last-child::before {
643
+ display: none;
644
+ }
645
+
646
+ .activity-icon {
647
+ width: 24px;
648
+ height: 24px;
649
+ border-radius: 50%;
650
+ display: flex;
651
+ align-items: center;
652
+ justify-content: center;
653
+ font-size: 11px;
654
+ flex-shrink: 0;
655
+ z-index: 1;
656
+ }
657
+
658
+ .activity-icon.stage-complete {
659
+ background: rgba(34, 197, 94, 0.2);
660
+ color: var(--status-complete);
661
+ }
662
+
663
+ .activity-icon.bolt-complete {
664
+ background: rgba(34, 197, 94, 0.3);
665
+ color: var(--status-complete);
666
+ }
667
+
668
+ .activity-icon.bolt-start {
669
+ background: rgba(59, 130, 246, 0.2);
670
+ color: var(--status-info);
671
+ }
672
+
673
+ .activity-icon.bolt-created {
674
+ background: rgba(139, 92, 246, 0.2);
675
+ color: #8b5cf6;
676
+ }
677
+
678
+ .activity-content {
679
+ flex: 1;
680
+ min-width: 0;
681
+ }
682
+
683
+ .activity-text {
684
+ font-size: 11px;
685
+ line-height: 1.4;
686
+ }
687
+
688
+ .activity-text strong {
689
+ color: var(--accent-primary);
690
+ }
691
+
692
+ .activity-meta {
693
+ display: flex;
694
+ align-items: center;
695
+ gap: 8px;
696
+ margin-top: 3px;
697
+ }
698
+
699
+ .activity-target {
700
+ font-size: 9px;
701
+ color: var(--vscode-descriptionForeground);
702
+ white-space: nowrap;
703
+ overflow: hidden;
704
+ text-overflow: ellipsis;
705
+ }
706
+
707
+ .activity-tag {
708
+ font-size: 8px;
709
+ padding: 2px 6px;
710
+ border-radius: 8px;
711
+ background: var(--vscode-input-background);
712
+ color: var(--vscode-descriptionForeground);
713
+ text-transform: uppercase;
714
+ }
715
+
716
+ .activity-time {
717
+ font-size: 9px;
718
+ color: var(--vscode-descriptionForeground);
719
+ white-space: nowrap;
720
+ flex-shrink: 0;
721
+ }
722
+
723
+ /* Queue Section */
724
+ .queue-section {
725
+ padding: 12px;
726
+ border-bottom: 1px solid var(--vscode-input-border);
727
+ }
728
+
729
+ .queue-header {
730
+ display: flex;
731
+ justify-content: space-between;
732
+ align-items: center;
733
+ margin-bottom: 8px;
734
+ }
735
+
736
+ .queue-title {
737
+ font-size: 10px;
738
+ font-weight: 600;
739
+ text-transform: uppercase;
740
+ color: var(--vscode-descriptionForeground);
741
+ }
742
+
743
+ .queue-count {
744
+ font-size: 9px;
745
+ padding: 2px 8px;
746
+ border-radius: 10px;
747
+ background: var(--vscode-badge-background);
748
+ }
749
+
750
+ .queue-list {
751
+ display: flex;
752
+ flex-direction: column;
753
+ gap: 6px;
754
+ }
755
+
756
+ .queue-item {
757
+ display: flex;
758
+ align-items: center;
759
+ gap: 10px;
760
+ padding: 10px 12px;
761
+ background: var(--vscode-editor-background);
762
+ border-radius: 6px;
763
+ cursor: pointer;
764
+ transition: all 0.15s;
765
+ border-left: 3px solid transparent;
766
+ }
767
+
768
+ .queue-item:hover {
769
+ background: var(--vscode-list-hoverBackground);
770
+ border-left-color: var(--accent-primary);
771
+ }
772
+
773
+ .queue-priority {
774
+ width: 20px;
775
+ height: 20px;
776
+ border-radius: 4px;
777
+ display: flex;
778
+ align-items: center;
779
+ justify-content: center;
780
+ font-size: 10px;
781
+ font-weight: 600;
782
+ background: var(--vscode-input-background);
783
+ color: var(--vscode-descriptionForeground);
784
+ }
785
+
786
+ .queue-info {
787
+ flex: 1;
788
+ min-width: 0;
789
+ }
790
+
791
+ .queue-name {
792
+ font-size: 11px;
793
+ font-weight: 500;
794
+ white-space: nowrap;
795
+ overflow: hidden;
796
+ text-overflow: ellipsis;
797
+ }
798
+
799
+ .queue-meta {
800
+ font-size: 9px;
801
+ color: var(--vscode-descriptionForeground);
802
+ margin-top: 2px;
803
+ }
804
+
805
+ .queue-stages {
806
+ display: flex;
807
+ gap: 2px;
808
+ }
809
+
810
+ .queue-stage {
811
+ width: 14px;
812
+ height: 14px;
813
+ border-radius: 3px;
814
+ display: flex;
815
+ align-items: center;
816
+ justify-content: center;
817
+ font-size: 8px;
818
+ font-weight: 600;
819
+ }
820
+
821
+ .queue-stage.complete {
822
+ background: var(--status-complete);
823
+ color: white;
824
+ }
825
+
826
+ .queue-stage.active {
827
+ background: var(--accent-primary);
828
+ color: white;
829
+ }
830
+
831
+ .queue-stage.pending {
832
+ background: var(--vscode-input-background);
833
+ color: var(--vscode-descriptionForeground);
834
+ }
835
+
836
+ /* System Section */
837
+ .system-section {
838
+ padding: 12px;
839
+ background: var(--vscode-editor-background);
840
+ }
841
+
842
+ .system-header {
843
+ font-size: 10px;
844
+ font-weight: 600;
845
+ text-transform: uppercase;
846
+ color: var(--vscode-descriptionForeground);
847
+ margin-bottom: 8px;
848
+ }
849
+
850
+ .system-grid {
851
+ display: grid;
852
+ grid-template-columns: repeat(4, 1fr);
853
+ gap: 8px;
854
+ }
855
+
856
+ .system-card {
857
+ background: var(--vscode-sideBar-background);
858
+ border-radius: 6px;
859
+ padding: 10px 8px;
860
+ text-align: center;
861
+ cursor: pointer;
862
+ transition: all 0.15s;
863
+ }
864
+
865
+ .system-card:hover {
866
+ transform: translateY(-2px);
867
+ }
868
+
869
+ .system-value {
870
+ font-size: 16px;
871
+ font-weight: 700;
872
+ }
873
+
874
+ .system-value.intents { color: #8b5cf6; }
875
+ .system-value.bolts { color: var(--accent-primary); }
876
+ .system-value.stories { color: var(--status-complete); }
877
+ .system-value.standards { color: var(--status-info); }
878
+
879
+ .system-label {
880
+ font-size: 8px;
881
+ color: var(--vscode-descriptionForeground);
882
+ margin-top: 2px;
883
+ }
884
+
885
+ /* ==================== SPECS VIEW ==================== */
886
+ .specs-toolbar {
887
+ padding: 8px 12px;
888
+ background: var(--vscode-sideBarSectionHeader-background);
889
+ border-bottom: 1px solid var(--vscode-input-border);
890
+ display: flex;
891
+ gap: 8px;
892
+ align-items: center;
893
+ }
894
+
895
+ .specs-toolbar-label {
896
+ font-size: 9px;
897
+ color: var(--vscode-descriptionForeground);
898
+ text-transform: uppercase;
899
+ }
900
+
901
+ .specs-toolbar-select {
902
+ flex: 1;
903
+ padding: 5px 8px;
904
+ font-size: 10px;
905
+ background: var(--vscode-input-background);
906
+ border: 1px solid var(--vscode-input-border);
907
+ color: var(--vscode-editor-foreground);
908
+ border-radius: 4px;
909
+ cursor: pointer;
910
+ }
911
+
912
+ .specs-content {
913
+ flex: 1;
914
+ overflow-y: auto;
915
+ }
916
+
917
+ /* Intent Item */
918
+ .intent-item {
919
+ border-bottom: 1px solid var(--vscode-input-border);
920
+ }
921
+
922
+ .intent-header {
923
+ display: flex;
924
+ align-items: center;
925
+ gap: 8px;
926
+ padding: 10px 12px;
927
+ cursor: pointer;
928
+ transition: background 0.15s;
929
+ }
930
+
931
+ .intent-header:hover {
932
+ background: var(--vscode-list-hoverBackground);
933
+ }
934
+
935
+ .intent-expand {
936
+ font-size: 10px;
937
+ color: var(--vscode-descriptionForeground);
938
+ transition: transform 0.2s;
939
+ }
940
+
941
+ .intent-item.collapsed .intent-expand {
942
+ transform: rotate(-90deg);
943
+ }
944
+
945
+ .intent-icon {
946
+ font-size: 14px;
947
+ }
948
+
949
+ .intent-info {
950
+ flex: 1;
951
+ }
952
+
953
+ .intent-name {
954
+ font-size: 12px;
955
+ font-weight: 500;
956
+ }
957
+
958
+ .intent-meta {
959
+ font-size: 10px;
960
+ color: var(--vscode-descriptionForeground);
961
+ margin-top: 2px;
962
+ }
963
+
964
+ .intent-progress-ring {
965
+ width: 28px;
966
+ height: 28px;
967
+ position: relative;
968
+ }
969
+
970
+ .intent-progress-ring svg {
971
+ transform: rotate(-90deg);
972
+ }
973
+
974
+ .intent-progress-ring .ring-bg {
975
+ fill: none;
976
+ stroke: var(--vscode-input-background);
977
+ stroke-width: 3;
978
+ }
979
+
980
+ .intent-progress-ring .ring-fill {
981
+ fill: none;
982
+ stroke: var(--status-complete);
983
+ stroke-width: 3;
984
+ stroke-linecap: round;
985
+ stroke-dasharray: 69.115;
986
+ }
987
+
988
+ .intent-progress-text {
989
+ position: absolute;
990
+ top: 50%;
991
+ left: 50%;
992
+ transform: translate(-50%, -50%);
993
+ font-size: 8px;
994
+ font-weight: 600;
995
+ }
996
+
997
+ .intent-content {
998
+ max-height: 2000px;
999
+ overflow: hidden;
1000
+ transition: max-height 0.3s ease;
1001
+ background: var(--vscode-editor-background);
1002
+ }
1003
+
1004
+ .intent-item.collapsed .intent-content {
1005
+ max-height: 0;
1006
+ }
1007
+
1008
+ /* Unit Item */
1009
+ .unit-item {
1010
+ border-bottom: 1px solid var(--vscode-input-border);
1011
+ }
1012
+
1013
+ .unit-header {
1014
+ display: flex;
1015
+ align-items: center;
1016
+ gap: 8px;
1017
+ padding: 8px 12px 8px 28px;
1018
+ cursor: pointer;
1019
+ transition: background 0.15s;
1020
+ }
1021
+
1022
+ .unit-header:hover {
1023
+ background: var(--vscode-list-hoverBackground);
1024
+ }
1025
+
1026
+ .unit-expand {
1027
+ font-size: 10px;
1028
+ color: var(--vscode-descriptionForeground);
1029
+ transition: transform 0.2s;
1030
+ }
1031
+
1032
+ .unit-item.collapsed .unit-expand {
1033
+ transform: rotate(-90deg);
1034
+ }
1035
+
1036
+ .unit-status {
1037
+ width: 16px;
1038
+ height: 16px;
1039
+ border-radius: 50%;
1040
+ display: flex;
1041
+ align-items: center;
1042
+ justify-content: center;
1043
+ font-size: 9px;
1044
+ color: white;
1045
+ }
1046
+
1047
+ .unit-status.complete { background: var(--status-complete); }
1048
+ .unit-status.active { background: var(--status-active); }
1049
+ .unit-status.pending {
1050
+ background: var(--vscode-input-background);
1051
+ border: 1px dashed var(--vscode-input-border);
1052
+ color: var(--vscode-descriptionForeground);
1053
+ }
1054
+
1055
+ .unit-name {
1056
+ flex: 1;
1057
+ font-size: 11px;
1058
+ }
1059
+
1060
+ .unit-progress {
1061
+ font-size: 9px;
1062
+ color: var(--vscode-descriptionForeground);
1063
+ }
1064
+
1065
+ .unit-content {
1066
+ max-height: 1000px;
1067
+ overflow: hidden;
1068
+ transition: max-height 0.3s ease;
1069
+ }
1070
+
1071
+ .unit-item.collapsed .unit-content {
1072
+ max-height: 0;
1073
+ }
1074
+
1075
+ .spec-story-item {
1076
+ display: flex;
1077
+ align-items: center;
1078
+ gap: 8px;
1079
+ padding: 6px 12px 6px 52px;
1080
+ cursor: pointer;
1081
+ transition: background 0.15s;
1082
+ }
1083
+
1084
+ .spec-story-item:hover {
1085
+ background: var(--vscode-list-hoverBackground);
1086
+ }
1087
+
1088
+ .spec-story-status {
1089
+ width: 12px;
1090
+ height: 12px;
1091
+ border-radius: 50%;
1092
+ border: 2px solid var(--vscode-input-border);
1093
+ display: flex;
1094
+ align-items: center;
1095
+ justify-content: center;
1096
+ font-size: 8px;
1097
+ }
1098
+
1099
+ .spec-story-status.complete {
1100
+ background: var(--status-complete);
1101
+ border-color: var(--status-complete);
1102
+ color: white;
1103
+ }
1104
+
1105
+ .spec-story-status.active {
1106
+ background: var(--status-active);
1107
+ border-color: var(--status-active);
1108
+ color: white;
1109
+ }
1110
+
1111
+ .spec-story-name {
1112
+ flex: 1;
1113
+ font-size: 11px;
1114
+ }
1115
+
1116
+ .spec-story-name.complete {
1117
+ color: var(--vscode-descriptionForeground);
1118
+ }
1119
+
1120
+ /* ==================== OVERVIEW VIEW ==================== */
1121
+ .overview-content {
1122
+ padding: 16px;
1123
+ }
1124
+
1125
+ .overview-section {
1126
+ margin-bottom: 20px;
1127
+ }
1128
+
1129
+ .overview-section-title {
1130
+ font-size: 10px;
1131
+ font-weight: 600;
1132
+ text-transform: uppercase;
1133
+ color: var(--vscode-descriptionForeground);
1134
+ margin-bottom: 10px;
1135
+ }
1136
+
1137
+ .overview-metrics {
1138
+ display: grid;
1139
+ grid-template-columns: repeat(2, 1fr);
1140
+ gap: 10px;
1141
+ }
1142
+
1143
+ .overview-metric-card {
1144
+ background: var(--vscode-editor-background);
1145
+ border-radius: 8px;
1146
+ padding: 16px;
1147
+ text-align: center;
1148
+ }
1149
+
1150
+ .overview-metric-value {
1151
+ font-size: 28px;
1152
+ font-weight: 700;
1153
+ margin-bottom: 4px;
1154
+ }
1155
+
1156
+ .overview-metric-value.highlight { color: var(--accent-primary); }
1157
+ .overview-metric-value.success { color: var(--status-complete); }
1158
+
1159
+ .overview-metric-label {
1160
+ font-size: 10px;
1161
+ color: var(--vscode-descriptionForeground);
1162
+ }
1163
+
1164
+ .overview-progress-bar {
1165
+ height: 8px;
1166
+ background: var(--vscode-input-background);
1167
+ border-radius: 4px;
1168
+ overflow: hidden;
1169
+ margin-bottom: 20px;
1170
+ }
1171
+
1172
+ .overview-progress-fill {
1173
+ height: 100%;
1174
+ background: linear-gradient(90deg, var(--status-complete), var(--accent-primary));
1175
+ border-radius: 4px;
1176
+ transition: width 0.5s ease;
1177
+ }
1178
+
1179
+ .overview-list {
1180
+ display: flex;
1181
+ flex-direction: column;
1182
+ gap: 8px;
1183
+ }
1184
+
1185
+ .overview-list-item {
1186
+ display: flex;
1187
+ align-items: center;
1188
+ gap: 12px;
1189
+ padding: 10px 12px;
1190
+ background: var(--vscode-editor-background);
1191
+ border-radius: 6px;
1192
+ cursor: pointer;
1193
+ transition: all 0.15s;
1194
+ }
1195
+
1196
+ .overview-list-item:hover {
1197
+ background: var(--vscode-list-hoverBackground);
1198
+ }
1199
+
1200
+ .overview-list-icon {
1201
+ width: 32px;
1202
+ height: 32px;
1203
+ border-radius: 6px;
1204
+ display: flex;
1205
+ align-items: center;
1206
+ justify-content: center;
1207
+ font-size: 14px;
1208
+ }
1209
+
1210
+ .overview-list-icon.intent {
1211
+ background: rgba(139, 92, 246, 0.2);
1212
+ color: #8b5cf6;
1213
+ }
1214
+
1215
+ .overview-list-icon.bolt {
1216
+ background: rgba(249, 115, 22, 0.2);
1217
+ color: var(--accent-primary);
1218
+ }
1219
+
1220
+ .overview-list-info {
1221
+ flex: 1;
1222
+ }
1223
+
1224
+ .overview-list-name {
1225
+ font-size: 12px;
1226
+ font-weight: 500;
1227
+ }
1228
+
1229
+ .overview-list-meta {
1230
+ font-size: 10px;
1231
+ color: var(--vscode-descriptionForeground);
1232
+ margin-top: 2px;
1233
+ }
1234
+
1235
+ .overview-list-progress {
1236
+ font-size: 11px;
1237
+ font-weight: 600;
1238
+ color: var(--status-complete);
1239
+ }
1240
+
1241
+ /* Toast */
1242
+ .toast {
1243
+ position: fixed;
1244
+ bottom: 20px;
1245
+ left: 50%;
1246
+ transform: translateX(-50%) translateY(100px);
1247
+ padding: 10px 20px;
1248
+ background: var(--vscode-sideBar-background);
1249
+ border: 1px solid var(--accent-primary);
1250
+ border-radius: 6px;
1251
+ font-size: 12px;
1252
+ box-shadow: 0 4px 12px rgba(0,0,0,0.3);
1253
+ opacity: 0;
1254
+ transition: all 0.3s ease;
1255
+ z-index: 1000;
1256
+ }
1257
+
1258
+ .toast.show {
1259
+ transform: translateX(-50%) translateY(0);
1260
+ opacity: 1;
1261
+ }
1262
+
1263
+ .toast.success {
1264
+ border-color: var(--status-complete);
1265
+ }
1266
+
1267
+ /* Scrollbar */
1268
+ ::-webkit-scrollbar {
1269
+ width: 8px;
1270
+ }
1271
+
1272
+ ::-webkit-scrollbar-track {
1273
+ background: transparent;
1274
+ }
1275
+
1276
+ ::-webkit-scrollbar-thumb {
1277
+ background: var(--vscode-input-border);
1278
+ border-radius: 4px;
1279
+ }
1280
+ </style>
1281
+ </head>
1282
+ <body>
1283
+ <div class="sidebar" id="sidebar">
1284
+ <div class="header">
1285
+ <span class="header-title">SpecsMD</span>
1286
+ <div class="header-actions">
1287
+ <button type="button" class="icon-btn" id="refreshBtn" title="Refresh">&#8635;</button>
1288
+ <button type="button" class="icon-btn" title="Settings">&#9881;</button>
1289
+ </div>
1290
+ </div>
1291
+
1292
+ <!-- Main View Tabs -->
1293
+ <div class="view-tabs">
1294
+ <button type="button" class="view-tab active" id="command-tab" onclick="switchView('command')">
1295
+ &#9889; Bolts
1296
+ </button>
1297
+ <button type="button" class="view-tab" id="specs-tab" onclick="switchView('specs')">
1298
+ &#128203; Specs
1299
+ </button>
1300
+ <button type="button" class="view-tab" id="overview-tab" onclick="switchView('overview')">
1301
+ &#128202; Overview
1302
+ </button>
1303
+ </div>
1304
+
1305
+ <!-- ==================== COMMAND VIEW ==================== -->
1306
+ <div class="view-container active" id="command-view">
1307
+ <div class="mission-status">
1308
+ <div class="mission-label">Current Intent</div>
1309
+ <div class="mission-title">011-vscode-extension</div>
1310
+ <div class="mission-stats" id="missionStats"></div>
1311
+ </div>
1312
+
1313
+ <div class="focus-section">
1314
+ <div class="section-label">
1315
+ <span class="section-label-icon">&#127919;</span>
1316
+ Current Focus
1317
+ </div>
1318
+ <div id="focusCardContainer"></div>
1319
+ </div>
1320
+
1321
+ <div class="queue-section">
1322
+ <div class="queue-header">
1323
+ <span class="queue-title">Up Next</span>
1324
+ <span class="queue-count" id="queueCount">0 bolts</span>
1325
+ </div>
1326
+ <div class="queue-list" id="queueList"></div>
1327
+ </div>
1328
+
1329
+ <!-- Recent Activity Section (from 8a) -->
1330
+ <div class="activity-section" id="activitySection">
1331
+ <div class="activity-resize-handle" id="activityResizeHandle"></div>
1332
+ <div class="activity-header" style="margin-top: 8px;">
1333
+ <div class="activity-title">
1334
+ <span>&#128340;</span>
1335
+ Recent Activity
1336
+ </div>
1337
+ <div class="activity-filter">
1338
+ <button type="button" class="activity-filter-btn active" data-filter="all">All</button>
1339
+ <button type="button" class="activity-filter-btn" data-filter="stage">Stages</button>
1340
+ <button type="button" class="activity-filter-btn" data-filter="bolt">Bolts</button>
1341
+ </div>
1342
+ </div>
1343
+ <div class="activity-list" id="activityList"></div>
1344
+ </div>
1345
+ </div>
1346
+
1347
+ <!-- ==================== SPECS VIEW ==================== -->
1348
+ <div class="view-container" id="specs-view">
1349
+ <div class="specs-toolbar">
1350
+ <span class="specs-toolbar-label">Filter</span>
1351
+ <select class="specs-toolbar-select" id="specs-filter" onchange="filterSpecs()">
1352
+ <option value="all">All Status</option>
1353
+ <option value="active">In Progress</option>
1354
+ <option value="complete">Completed</option>
1355
+ <option value="pending">Not Started</option>
1356
+ </select>
1357
+ </div>
1358
+ <div class="specs-content" id="specs-content"></div>
1359
+ </div>
1360
+
1361
+ <!-- ==================== OVERVIEW VIEW ==================== -->
1362
+ <div class="view-container" id="overview-view">
1363
+ <div class="overview-content" id="overview-content"></div>
1364
+ </div>
1365
+
1366
+ <div class="theme-toggle">
1367
+ <button type="button" class="theme-btn active" id="darkBtn">Dark</button>
1368
+ <button type="button" class="theme-btn" id="lightBtn">Light</button>
1369
+ </div>
1370
+ </div>
1371
+
1372
+ <div class="toast" id="toast"></div>
1373
+
1374
+ <script>
1375
+ // ==================== DATA MODEL ====================
1376
+ // Bolts with timestamp data (derived from frontmatter parsing)
1377
+ let bolts = [
1378
+ {
1379
+ id: 'bolt-1',
1380
+ name: 'bolt-sidebar-ui-1',
1381
+ type: 'DDD',
1382
+ intentId: 'intent-1',
1383
+ status: 'active',
1384
+ created: new Date('2025-12-26T09:00:00Z'),
1385
+ started: new Date('2025-12-26T10:00:00Z'),
1386
+ completed: null,
1387
+ stages: { model: 'complete', design: 'active', adr: 'pending', implement: 'pending', test: 'pending' },
1388
+ stagesCompleted: [
1389
+ { name: 'model', completed: new Date('2025-12-26T10:30:00Z') }
1390
+ ],
1391
+ stories: [
1392
+ { id: 's1', name: 'Create sidebar layout', status: 'complete' },
1393
+ { id: 's2', name: 'Design tree view', status: 'active' },
1394
+ { id: 's3', name: 'Implement expand/collapse', status: 'pending' }
1395
+ ]
1396
+ },
1397
+ {
1398
+ id: 'bolt-2',
1399
+ name: 'bolt-artifact-parser-1',
1400
+ type: 'Simple',
1401
+ intentId: 'intent-1',
1402
+ status: 'complete',
1403
+ created: new Date('2025-12-25T17:00:00Z'),
1404
+ started: new Date('2025-12-25T18:45:00Z'),
1405
+ completed: new Date('2025-12-25T19:15:00Z'),
1406
+ stages: { plan: 'complete', implement: 'complete', test: 'complete' },
1407
+ stagesCompleted: [
1408
+ { name: 'plan', completed: new Date('2025-12-25T18:50:00Z') },
1409
+ { name: 'implement', completed: new Date('2025-12-25T19:00:00Z') },
1410
+ { name: 'test', completed: new Date('2025-12-25T19:15:00Z') }
1411
+ ],
1412
+ stories: [
1413
+ { id: 's4', name: 'Parse frontmatter', status: 'complete' },
1414
+ { id: 's5', name: 'Extract status', status: 'complete' }
1415
+ ]
1416
+ },
1417
+ {
1418
+ id: 'bolt-3',
1419
+ name: 'bolt-file-watcher-1',
1420
+ type: 'Simple',
1421
+ intentId: 'intent-1',
1422
+ status: 'complete',
1423
+ created: new Date('2025-12-25T17:00:00Z'),
1424
+ started: new Date('2025-12-25T20:00:00Z'),
1425
+ completed: new Date('2025-12-25T20:45:00Z'),
1426
+ stages: { plan: 'complete', implement: 'complete', test: 'complete' },
1427
+ stagesCompleted: [
1428
+ { name: 'plan', completed: new Date('2025-12-25T20:10:00Z') },
1429
+ { name: 'implement', completed: new Date('2025-12-25T20:30:00Z') },
1430
+ { name: 'test', completed: new Date('2025-12-25T20:45:00Z') }
1431
+ ],
1432
+ stories: [
1433
+ { id: 's6', name: 'Watch file changes', status: 'complete' },
1434
+ { id: 's7', name: 'Debounce updates', status: 'complete' }
1435
+ ]
1436
+ },
1437
+ {
1438
+ id: 'bolt-4',
1439
+ name: 'bolt-extension-core-1',
1440
+ type: 'Simple',
1441
+ intentId: 'intent-1',
1442
+ status: 'complete',
1443
+ created: new Date('2025-12-25T17:00:00Z'),
1444
+ started: new Date('2025-12-25T22:30:00Z'),
1445
+ completed: new Date('2025-12-25T22:50:00Z'),
1446
+ stages: { plan: 'complete', implement: 'complete', test: 'complete' },
1447
+ stagesCompleted: [
1448
+ { name: 'plan', completed: new Date('2025-12-25T22:30:00Z') },
1449
+ { name: 'implement', completed: new Date('2025-12-25T22:45:00Z') },
1450
+ { name: 'test', completed: new Date('2025-12-25T22:50:00Z') }
1451
+ ],
1452
+ stories: [
1453
+ { id: 's8', name: 'Extension activation', status: 'complete' },
1454
+ { id: 's9', name: 'Command registration', status: 'complete' }
1455
+ ]
1456
+ },
1457
+ {
1458
+ id: 'bolt-5',
1459
+ name: 'bolt-webview-panel-1',
1460
+ type: 'DDD',
1461
+ intentId: 'intent-1',
1462
+ status: 'pending',
1463
+ created: new Date('2025-12-26T08:00:00Z'),
1464
+ started: null,
1465
+ completed: null,
1466
+ stages: { model: 'pending', design: 'pending', adr: 'pending', implement: 'pending', test: 'pending' },
1467
+ stagesCompleted: [],
1468
+ stories: [
1469
+ { id: 's10', name: 'Design webview layout', status: 'pending' },
1470
+ { id: 's11', name: 'Implement messaging', status: 'pending' }
1471
+ ]
1472
+ }
1473
+ ];
1474
+
1475
+ const intents = [
1476
+ { id: 'intent-1', name: '011-vscode-extension', units: ['unit-1', 'unit-2'] }
1477
+ ];
1478
+
1479
+ const units = [
1480
+ { id: 'unit-1', name: 'sidebar-provider', intentId: 'intent-1' },
1481
+ { id: 'unit-2', name: 'artifact-parser', intentId: 'intent-1' }
1482
+ ];
1483
+
1484
+ const specStories = [
1485
+ { id: 'story-1', name: '001-tree-view', unitId: 'unit-1', status: 'complete' },
1486
+ { id: 'story-2', name: '002-expand-collapse', unitId: 'unit-1', status: 'active' },
1487
+ { id: 'story-3', name: '003-file-icons', unitId: 'unit-1', status: 'pending' },
1488
+ { id: 'story-4', name: '001-parse-frontmatter', unitId: 'unit-2', status: 'complete' },
1489
+ { id: 'story-5', name: '002-extract-status', unitId: 'unit-2', status: 'complete' },
1490
+ { id: 'story-6', name: '003-validate-schema', unitId: 'unit-2', status: 'complete' }
1491
+ ];
1492
+
1493
+ // ==================== STATE ====================
1494
+ let state = {
1495
+ currentView: 'command',
1496
+ focusExpanded: true,
1497
+ activityFilter: 'all',
1498
+ specsFilter: 'all',
1499
+ expandedIntents: ['intent-1'],
1500
+ expandedUnits: ['unit-1']
1501
+ };
1502
+
1503
+ // ==================== ACTIVITY FEED BUILDER ====================
1504
+ // Derives activity from parsed bolt data (no separate logging needed)
1505
+ function buildActivityFeed(bolts) {
1506
+ const events = [];
1507
+
1508
+ for (const bolt of bolts) {
1509
+ if (bolt.created) {
1510
+ events.push({
1511
+ type: 'bolt-created', iconClass: 'bolt-created', icon: '&#43;',
1512
+ text: `Created <strong>${bolt.name}</strong>`,
1513
+ target: bolt.name, tag: 'bolt', timestamp: bolt.created
1514
+ });
1515
+ }
1516
+ if (bolt.started) {
1517
+ events.push({
1518
+ type: 'bolt-start', iconClass: 'bolt-start', icon: '&#9654;',
1519
+ text: `Started <strong>${bolt.name}</strong>`,
1520
+ target: bolt.name, tag: 'bolt', timestamp: bolt.started
1521
+ });
1522
+ }
1523
+ if (bolt.stagesCompleted) {
1524
+ for (const stage of bolt.stagesCompleted) {
1525
+ events.push({
1526
+ type: 'stage-complete', iconClass: 'stage-complete', icon: '&#10003;',
1527
+ text: `Completed <strong>${stage.name}</strong> stage`,
1528
+ target: bolt.name, tag: 'stage', timestamp: stage.completed
1529
+ });
1530
+ }
1531
+ }
1532
+ if (bolt.completed) {
1533
+ events.push({
1534
+ type: 'bolt-complete', iconClass: 'bolt-complete', icon: '&#10004;',
1535
+ text: `Completed <strong>${bolt.name}</strong>`,
1536
+ target: bolt.name, tag: 'bolt', timestamp: bolt.completed
1537
+ });
1538
+ }
1539
+ }
1540
+
1541
+ return events.sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime());
1542
+ }
1543
+
1544
+ // ==================== UTILITY FUNCTIONS ====================
1545
+ function showToast(message, type = 'info') {
1546
+ const toast = document.getElementById('toast');
1547
+ toast.textContent = message;
1548
+ toast.className = 'toast show' + (type === 'success' ? ' success' : '');
1549
+ setTimeout(() => toast.classList.remove('show'), 2500);
1550
+ }
1551
+
1552
+ function formatRelativeTime(date) {
1553
+ const now = new Date();
1554
+ const diffMs = now - date;
1555
+ const diffMins = Math.floor(diffMs / 60000);
1556
+ const diffHours = Math.floor(diffMs / 3600000);
1557
+ const diffDays = Math.floor(diffMs / 86400000);
1558
+
1559
+ if (diffMins < 1) return 'Just now';
1560
+ if (diffMins < 60) return `${diffMins}m ago`;
1561
+ if (diffHours < 24) return `${diffHours}h ago`;
1562
+ if (diffDays === 1) return 'Yesterday';
1563
+ if (diffDays < 7) return `${diffDays}d ago`;
1564
+ return date.toLocaleDateString();
1565
+ }
1566
+
1567
+ function getStageProgress(stages) {
1568
+ const stageOrder = Object.keys(stages);
1569
+ let complete = 0;
1570
+ let current = stageOrder[0];
1571
+
1572
+ stageOrder.forEach(stage => {
1573
+ if (stages[stage] === 'complete') complete++;
1574
+ if (stages[stage] === 'active') current = stage;
1575
+ });
1576
+
1577
+ return { complete, total: stageOrder.length, current, percent: Math.round((complete / stageOrder.length) * 100) };
1578
+ }
1579
+
1580
+ function getStoriesProgress(storyList) {
1581
+ const complete = storyList.filter(s => s.status === 'complete').length;
1582
+ return { complete, total: storyList.length };
1583
+ }
1584
+
1585
+ function getActiveBolt() {
1586
+ return bolts.find(b => b.status === 'active');
1587
+ }
1588
+
1589
+ // ==================== VIEW SWITCHING ====================
1590
+ function switchView(view) {
1591
+ state.currentView = view;
1592
+
1593
+ document.getElementById('command-tab').classList.toggle('active', view === 'command');
1594
+ document.getElementById('specs-tab').classList.toggle('active', view === 'specs');
1595
+ document.getElementById('overview-tab').classList.toggle('active', view === 'overview');
1596
+
1597
+ document.getElementById('command-view').classList.toggle('active', view === 'command');
1598
+ document.getElementById('specs-view').classList.toggle('active', view === 'specs');
1599
+ document.getElementById('overview-view').classList.toggle('active', view === 'overview');
1600
+
1601
+ if (view === 'specs') renderSpecs();
1602
+ if (view === 'overview') renderOverview();
1603
+ }
1604
+
1605
+ // ==================== COMMAND VIEW RENDERS ====================
1606
+ function renderMissionStats() {
1607
+ const stats = document.getElementById('missionStats');
1608
+ const activeBolts = bolts.filter(b => b.status === 'active').length;
1609
+ const pendingBolts = bolts.filter(b => b.status === 'pending').length;
1610
+ const completeBolts = bolts.filter(b => b.status === 'complete').length;
1611
+
1612
+ stats.innerHTML = `
1613
+ <div class="mission-stat">
1614
+ <div class="mission-stat-dot" style="background: var(--status-active)"></div>
1615
+ <span class="mission-stat-value">${activeBolts}</span>
1616
+ <span class="mission-stat-label">Active Bolts</span>
1617
+ </div>
1618
+ <div class="mission-stat">
1619
+ <div class="mission-stat-dot" style="background: var(--status-pending)"></div>
1620
+ <span class="mission-stat-value">${pendingBolts}</span>
1621
+ <span class="mission-stat-label">Queued Bolts</span>
1622
+ </div>
1623
+ <div class="mission-stat">
1624
+ <div class="mission-stat-dot" style="background: var(--status-complete)"></div>
1625
+ <span class="mission-stat-value">${completeBolts}</span>
1626
+ <span class="mission-stat-label">Done Bolts</span>
1627
+ </div>
1628
+ `;
1629
+ }
1630
+
1631
+ function renderFocusCard() {
1632
+ const container = document.getElementById('focusCardContainer');
1633
+ const activeBolt = getActiveBolt();
1634
+
1635
+ if (!activeBolt) {
1636
+ container.innerHTML = `
1637
+ <div style="padding: 20px; text-align: center; color: var(--vscode-descriptionForeground);">
1638
+ <div style="font-size: 24px; margin-bottom: 8px;">&#128640;</div>
1639
+ <div style="font-size: 11px;">No active bolt</div>
1640
+ </div>
1641
+ `;
1642
+ return;
1643
+ }
1644
+
1645
+ const stageProgress = getStageProgress(activeBolt.stages);
1646
+ const storiesProgress = getStoriesProgress(activeBolt.stories);
1647
+ const dashOffset = 157 - (157 * stageProgress.percent / 100);
1648
+ const stageLabels = { model: 'Model', design: 'Design', adr: 'ADR', implement: 'Impl', test: 'Test', plan: 'Plan' };
1649
+
1650
+ container.innerHTML = `
1651
+ <div class="focus-card ${state.focusExpanded ? 'expanded' : ''}">
1652
+ <div class="focus-card-header" onclick="toggleFocusCard()">
1653
+ <div>
1654
+ <div class="focus-card-title">${activeBolt.name}</div>
1655
+ <div class="focus-card-subtitle">${activeBolt.type} Bolt | ${stageLabels[stageProgress.current] || stageProgress.current} Stage</div>
1656
+ </div>
1657
+ <div class="focus-card-badge">In Progress</div>
1658
+ </div>
1659
+ <div class="focus-card-body">
1660
+ <div class="progress-ring-container">
1661
+ <div class="progress-ring">
1662
+ <svg width="64" height="64" viewBox="0 0 64 64">
1663
+ <circle class="progress-ring-bg" cx="32" cy="32" r="25"></circle>
1664
+ <circle class="progress-ring-fill" cx="32" cy="32" r="25" style="stroke-dashoffset: ${dashOffset}"></circle>
1665
+ </svg>
1666
+ <div class="progress-ring-text">${stageProgress.percent}%</div>
1667
+ </div>
1668
+ <div class="progress-details">
1669
+ <div class="progress-stage">Stage: <strong>${stageLabels[stageProgress.current] || stageProgress.current}</strong></div>
1670
+ <div class="progress-info">${stageProgress.complete} of ${stageProgress.total} stages complete</div>
1671
+ <div class="progress-info">${storiesProgress.complete}/${storiesProgress.total} stories done</div>
1672
+ </div>
1673
+ </div>
1674
+
1675
+ <div class="stage-pipeline">
1676
+ ${Object.entries(activeBolt.stages).map(([stage, status], idx, arr) => `
1677
+ <div class="pipeline-stage" onclick="advanceStage('${activeBolt.id}', '${stage}')">
1678
+ <div class="pipeline-node ${status}">
1679
+ ${status === 'complete' ? '&#10003;' : (stageLabels[stage] || stage).charAt(0).toUpperCase()}
1680
+ </div>
1681
+ <span class="pipeline-label">${stageLabels[stage] || stage}</span>
1682
+ </div>
1683
+ ${idx < arr.length - 1 ? `<div class="pipeline-connector ${status === 'complete' ? 'complete' : ''}"></div>` : ''}
1684
+ `).join('')}
1685
+ </div>
1686
+
1687
+ <div class="stories-section">
1688
+ <div class="stories-header">
1689
+ <span>Stories</span>
1690
+ <span>${storiesProgress.complete}/${storiesProgress.total}</span>
1691
+ </div>
1692
+ <div class="stories-list">
1693
+ ${activeBolt.stories.map(story => `
1694
+ <div class="story-item ${story.status === 'complete' ? 'completed' : ''}">
1695
+ <div class="story-checkbox ${story.status === 'complete' ? 'checked' : ''}">
1696
+ ${story.status === 'complete' ? '&#10003;' : ''}
1697
+ </div>
1698
+ <span class="story-name">${story.name}</span>
1699
+ </div>
1700
+ `).join('')}
1701
+ </div>
1702
+ </div>
1703
+
1704
+ <div class="focus-actions">
1705
+ <button type="button" class="action-btn action-btn-primary" onclick="showToast('Opening workspace...')">Continue</button>
1706
+ <button type="button" class="action-btn action-btn-secondary" onclick="showToast('Opening files...')">Files</button>
1707
+ </div>
1708
+ </div>
1709
+ </div>
1710
+ `;
1711
+ }
1712
+
1713
+ function renderActivityList() {
1714
+ const container = document.getElementById('activityList');
1715
+ let activities = buildActivityFeed(bolts);
1716
+
1717
+ if (state.activityFilter !== 'all') {
1718
+ activities = activities.filter(a => a.tag === state.activityFilter);
1719
+ }
1720
+
1721
+ activities = activities.slice(0, 6);
1722
+
1723
+ if (activities.length === 0) {
1724
+ container.innerHTML = '<div style="padding: 16px; text-align: center; color: var(--vscode-descriptionForeground); font-size: 11px;">No activity</div>';
1725
+ return;
1726
+ }
1727
+
1728
+ container.innerHTML = activities.map(a => `
1729
+ <div class="activity-item" onclick="showToast('Opening ${a.target}...')">
1730
+ <div class="activity-icon ${a.iconClass}">${a.icon}</div>
1731
+ <div class="activity-content">
1732
+ <div class="activity-text">${a.text}</div>
1733
+ <div class="activity-meta">
1734
+ <span class="activity-target">${a.target}</span>
1735
+ <span class="activity-tag">${a.tag}</span>
1736
+ </div>
1737
+ </div>
1738
+ <div class="activity-time">${formatRelativeTime(a.timestamp)}</div>
1739
+ </div>
1740
+ `).join('');
1741
+ }
1742
+
1743
+ function renderQueueList() {
1744
+ const container = document.getElementById('queueList');
1745
+ const queueCount = document.getElementById('queueCount');
1746
+ const queuedBolts = bolts.filter(b => b.status === 'pending');
1747
+
1748
+ queueCount.textContent = `${queuedBolts.length} bolts`;
1749
+
1750
+ if (queuedBolts.length === 0) {
1751
+ container.innerHTML = '<div style="padding: 16px; text-align: center; color: var(--vscode-descriptionForeground); font-size: 11px;">Queue empty</div>';
1752
+ return;
1753
+ }
1754
+
1755
+ const stageLabels = { model: 'M', design: 'D', adr: 'A', implement: 'I', test: 'T', plan: 'P' };
1756
+
1757
+ container.innerHTML = queuedBolts.map((bolt, idx) => `
1758
+ <div class="queue-item" onclick="startBolt('${bolt.id}')">
1759
+ <div class="queue-priority">${idx + 1}</div>
1760
+ <div class="queue-info">
1761
+ <div class="queue-name">${bolt.name}</div>
1762
+ <div class="queue-meta">${bolt.type} | ${bolt.stories.length} stories</div>
1763
+ </div>
1764
+ <div class="queue-stages">
1765
+ ${Object.entries(bolt.stages).map(([stage, status]) => `
1766
+ <div class="queue-stage ${status}">${stageLabels[stage] || stage.charAt(0).toUpperCase()}</div>
1767
+ `).join('')}
1768
+ </div>
1769
+ </div>
1770
+ `).join('');
1771
+ }
1772
+
1773
+ function renderSystemGrid() {
1774
+ const container = document.getElementById('systemGrid');
1775
+ const allBoltStories = bolts.flatMap(b => b.stories);
1776
+ const completedStories = allBoltStories.filter(s => s.status === 'complete').length;
1777
+
1778
+ container.innerHTML = `
1779
+ <div class="system-card" onclick="switchView('specs')">
1780
+ <div class="system-value intents">${intents.length}</div>
1781
+ <div class="system-label">Intents</div>
1782
+ </div>
1783
+ <div class="system-card">
1784
+ <div class="system-value bolts">${bolts.length}</div>
1785
+ <div class="system-label">Bolts</div>
1786
+ </div>
1787
+ <div class="system-card">
1788
+ <div class="system-value stories">${completedStories}/${allBoltStories.length}</div>
1789
+ <div class="system-label">Stories</div>
1790
+ </div>
1791
+ <div class="system-card" onclick="switchView('overview')">
1792
+ <div class="system-value standards">3</div>
1793
+ <div class="system-label">Standards</div>
1794
+ </div>
1795
+ `;
1796
+ }
1797
+
1798
+ // ==================== SPECS VIEW RENDERS ====================
1799
+ function renderSpecs() {
1800
+ const container = document.getElementById('specs-content');
1801
+ let html = '';
1802
+
1803
+ intents.forEach(intent => {
1804
+ const intentUnits = units.filter(u => intent.units.includes(u.id));
1805
+ const allStories = intentUnits.flatMap(u => specStories.filter(s => s.unitId === u.id));
1806
+ const doneStories = allStories.filter(s => s.status === 'complete').length;
1807
+ const activeStories = allStories.filter(s => s.status === 'active').length;
1808
+ const progress = allStories.length > 0 ? Math.round((doneStories / allStories.length) * 100) : 0;
1809
+ const dashOffset = 69.115 - (69.115 * progress / 100);
1810
+
1811
+ let intentStatus = 'pending';
1812
+ if (progress === 100) intentStatus = 'complete';
1813
+ else if (activeStories > 0 || doneStories > 0) intentStatus = 'active';
1814
+
1815
+ if (state.specsFilter !== 'all' && intentStatus !== state.specsFilter) return;
1816
+
1817
+ const isExpanded = state.expandedIntents.includes(intent.id);
1818
+
1819
+ html += `
1820
+ <div class="intent-item ${isExpanded ? '' : 'collapsed'}">
1821
+ <div class="intent-header" onclick="toggleIntent('${intent.id}')">
1822
+ <span class="intent-expand">&#9660;</span>
1823
+ <span class="intent-icon">&#128203;</span>
1824
+ <div class="intent-info">
1825
+ <div class="intent-name">${intent.name}</div>
1826
+ <div class="intent-meta">${intentUnits.length} units | ${allStories.length} stories</div>
1827
+ </div>
1828
+ <div class="intent-progress-ring">
1829
+ <svg width="28" height="28" viewBox="0 0 28 28">
1830
+ <circle class="ring-bg" cx="14" cy="14" r="11"></circle>
1831
+ <circle class="ring-fill" cx="14" cy="14" r="11" style="stroke-dashoffset: ${dashOffset}"></circle>
1832
+ </svg>
1833
+ <span class="intent-progress-text">${progress}%</span>
1834
+ </div>
1835
+ </div>
1836
+ <div class="intent-content">${renderUnits(intentUnits)}</div>
1837
+ </div>
1838
+ `;
1839
+ });
1840
+
1841
+ container.innerHTML = html || '<div style="padding: 24px; text-align: center; color: var(--vscode-descriptionForeground);">No intents match filter</div>';
1842
+ }
1843
+
1844
+ function renderUnits(unitList) {
1845
+ return unitList.map(unit => {
1846
+ const unitStories = specStories.filter(s => s.unitId === unit.id);
1847
+ const doneCount = unitStories.filter(s => s.status === 'complete').length;
1848
+ const activeCount = unitStories.filter(s => s.status === 'active').length;
1849
+
1850
+ let unitStatus = 'pending';
1851
+ if (doneCount === unitStories.length && unitStories.length > 0) unitStatus = 'complete';
1852
+ else if (activeCount > 0 || doneCount > 0) unitStatus = 'active';
1853
+
1854
+ const isExpanded = state.expandedUnits.includes(unit.id);
1855
+
1856
+ return `
1857
+ <div class="unit-item ${isExpanded ? '' : 'collapsed'}">
1858
+ <div class="unit-header" onclick="toggleUnit('${unit.id}')">
1859
+ <span class="unit-expand">&#9660;</span>
1860
+ <div class="unit-status ${unitStatus}">${unitStatus === 'complete' ? '&#10003;' : ''}</div>
1861
+ <span class="unit-name">${unit.name}</span>
1862
+ <span class="unit-progress">${doneCount}/${unitStories.length}</span>
1863
+ </div>
1864
+ <div class="unit-content">
1865
+ ${unitStories.map(story => `
1866
+ <div class="spec-story-item" onclick="showToast('Opening ${story.name}...')">
1867
+ <div class="spec-story-status ${story.status}">${story.status === 'complete' ? '&#10003;' : story.status === 'active' ? '&#9679;' : ''}</div>
1868
+ <span class="spec-story-name ${story.status === 'complete' ? 'complete' : ''}">${story.name}</span>
1869
+ </div>
1870
+ `).join('')}
1871
+ </div>
1872
+ </div>
1873
+ `;
1874
+ }).join('');
1875
+ }
1876
+
1877
+ // ==================== OVERVIEW VIEW RENDERS ====================
1878
+ function renderOverview() {
1879
+ const container = document.getElementById('overview-content');
1880
+ const totalStories = specStories.length;
1881
+ const completedStories = specStories.filter(s => s.status === 'complete').length;
1882
+ const progressPercent = Math.round((completedStories / totalStories) * 100);
1883
+ const completedBolts = bolts.filter(b => b.status === 'complete').length;
1884
+
1885
+ container.innerHTML = `
1886
+ <div class="overview-section">
1887
+ <div class="overview-section-title">Overall Progress</div>
1888
+ <div class="overview-progress-bar">
1889
+ <div class="overview-progress-fill" style="width: ${progressPercent}%"></div>
1890
+ </div>
1891
+ <div class="overview-metrics">
1892
+ <div class="overview-metric-card">
1893
+ <div class="overview-metric-value highlight">${progressPercent}%</div>
1894
+ <div class="overview-metric-label">Complete</div>
1895
+ </div>
1896
+ <div class="overview-metric-card">
1897
+ <div class="overview-metric-value success">${completedStories}/${totalStories}</div>
1898
+ <div class="overview-metric-label">Stories Done</div>
1899
+ </div>
1900
+ <div class="overview-metric-card">
1901
+ <div class="overview-metric-value">${completedBolts}/${bolts.length}</div>
1902
+ <div class="overview-metric-label">Bolts Done</div>
1903
+ </div>
1904
+ <div class="overview-metric-card">
1905
+ <div class="overview-metric-value">${intents.length}</div>
1906
+ <div class="overview-metric-label">Intents</div>
1907
+ </div>
1908
+ </div>
1909
+ </div>
1910
+
1911
+ <div class="overview-section">
1912
+ <div class="overview-section-title">Intents</div>
1913
+ <div class="overview-list">
1914
+ ${intents.map(intent => {
1915
+ const intentUnits = units.filter(u => intent.units.includes(u.id));
1916
+ const allStories = intentUnits.flatMap(u => specStories.filter(s => s.unitId === u.id));
1917
+ const doneStories = allStories.filter(s => s.status === 'complete').length;
1918
+ const progress = allStories.length > 0 ? Math.round((doneStories / allStories.length) * 100) : 0;
1919
+ return `
1920
+ <div class="overview-list-item" onclick="switchView('specs')">
1921
+ <div class="overview-list-icon intent">&#128203;</div>
1922
+ <div class="overview-list-info">
1923
+ <div class="overview-list-name">${intent.name}</div>
1924
+ <div class="overview-list-meta">${intentUnits.length} units | ${allStories.length} stories</div>
1925
+ </div>
1926
+ <div class="overview-list-progress">${progress}%</div>
1927
+ </div>
1928
+ `;
1929
+ }).join('')}
1930
+ </div>
1931
+ </div>
1932
+
1933
+ <div class="overview-section">
1934
+ <div class="overview-section-title">Active Bolts</div>
1935
+ <div class="overview-list">
1936
+ ${bolts.filter(b => b.status === 'active').map(bolt => {
1937
+ const progress = getStageProgress(bolt.stages);
1938
+ return `
1939
+ <div class="overview-list-item" onclick="switchView('command')">
1940
+ <div class="overview-list-icon bolt">&#9889;</div>
1941
+ <div class="overview-list-info">
1942
+ <div class="overview-list-name">${bolt.name}</div>
1943
+ <div class="overview-list-meta">${bolt.type} | ${progress.current} stage</div>
1944
+ </div>
1945
+ <div class="overview-list-progress">${progress.percent}%</div>
1946
+ </div>
1947
+ `;
1948
+ }).join('') || '<div style="padding: 12px; text-align: center; color: var(--vscode-descriptionForeground); font-size: 11px;">No active bolts</div>'}
1949
+ </div>
1950
+ </div>
1951
+ `;
1952
+ }
1953
+
1954
+ // ==================== EVENT HANDLERS ====================
1955
+ function toggleFocusCard() {
1956
+ state.focusExpanded = !state.focusExpanded;
1957
+ renderFocusCard();
1958
+ }
1959
+
1960
+ function toggleIntent(intentId) {
1961
+ const idx = state.expandedIntents.indexOf(intentId);
1962
+ if (idx === -1) state.expandedIntents.push(intentId);
1963
+ else state.expandedIntents.splice(idx, 1);
1964
+ renderSpecs();
1965
+ }
1966
+
1967
+ function toggleUnit(unitId) {
1968
+ const idx = state.expandedUnits.indexOf(unitId);
1969
+ if (idx === -1) state.expandedUnits.push(unitId);
1970
+ else state.expandedUnits.splice(idx, 1);
1971
+ renderSpecs();
1972
+ }
1973
+
1974
+ function filterSpecs() {
1975
+ state.specsFilter = document.getElementById('specs-filter').value;
1976
+ renderSpecs();
1977
+ }
1978
+
1979
+ function setActivityFilter(filter) {
1980
+ state.activityFilter = filter;
1981
+ document.querySelectorAll('.activity-filter-btn').forEach(btn => {
1982
+ btn.classList.toggle('active', btn.dataset.filter === filter);
1983
+ });
1984
+ renderActivityList();
1985
+ }
1986
+
1987
+ function advanceStage(boltId, stage) {
1988
+ const bolt = bolts.find(b => b.id === boltId);
1989
+ if (!bolt || bolt.stages[stage] !== 'active') return;
1990
+
1991
+ const stageOrder = Object.keys(bolt.stages);
1992
+ const stageIdx = stageOrder.indexOf(stage);
1993
+
1994
+ bolt.stages[stage] = 'complete';
1995
+ bolt.stagesCompleted = bolt.stagesCompleted || [];
1996
+ bolt.stagesCompleted.push({ name: stage, completed: new Date() });
1997
+
1998
+ showToast(`Completed ${stage}`, 'success');
1999
+
2000
+ if (stageIdx < stageOrder.length - 1) {
2001
+ bolt.stages[stageOrder[stageIdx + 1]] = 'active';
2002
+ }
2003
+
2004
+ render();
2005
+ }
2006
+
2007
+ function startBolt(boltId) {
2008
+ const currentActive = getActiveBolt();
2009
+ if (currentActive) currentActive.status = 'pending';
2010
+
2011
+ const bolt = bolts.find(b => b.id === boltId);
2012
+ if (!bolt) return;
2013
+
2014
+ bolt.status = 'active';
2015
+ bolt.started = new Date();
2016
+ const firstStage = Object.keys(bolt.stages)[0];
2017
+ if (bolt.stages[firstStage] === 'pending') {
2018
+ bolt.stages[firstStage] = 'active';
2019
+ }
2020
+
2021
+ showToast(`Started: ${bolt.name}`, 'success');
2022
+ render();
2023
+ }
2024
+
2025
+ function completeBolt(boltId) {
2026
+ const bolt = bolts.find(b => b.id === boltId);
2027
+ if (!bolt) return;
2028
+
2029
+ Object.keys(bolt.stages).forEach(stage => bolt.stages[stage] = 'complete');
2030
+ bolt.stories.forEach(story => story.status = 'complete');
2031
+ bolt.status = 'complete';
2032
+ bolt.completed = new Date();
2033
+
2034
+ showToast(`Completed: ${bolt.name}`, 'success');
2035
+ render();
2036
+ }
2037
+
2038
+ function setTheme(theme) {
2039
+ document.getElementById('darkBtn').classList.toggle('active', theme === 'dark');
2040
+ document.getElementById('lightBtn').classList.toggle('active', theme === 'light');
2041
+ document.getElementById('sidebar').classList.toggle('theme-light', theme === 'light');
2042
+ }
2043
+
2044
+ function render() {
2045
+ renderMissionStats();
2046
+ renderFocusCard();
2047
+ renderActivityList();
2048
+ renderQueueList();
2049
+ renderSystemGrid();
2050
+ }
2051
+
2052
+ // ==================== EVENT LISTENERS ====================
2053
+ document.getElementById('darkBtn').addEventListener('click', () => setTheme('dark'));
2054
+ document.getElementById('lightBtn').addEventListener('click', () => setTheme('light'));
2055
+ document.getElementById('refreshBtn').addEventListener('click', () => { showToast('Refreshing...'); render(); });
2056
+
2057
+ document.querySelectorAll('.activity-filter-btn').forEach(btn => {
2058
+ btn.addEventListener('click', () => setActivityFilter(btn.dataset.filter));
2059
+ });
2060
+
2061
+ // ==================== RESIZE HANDLE ====================
2062
+ const activitySection = document.getElementById('activitySection');
2063
+ const resizeHandle = document.getElementById('activityResizeHandle');
2064
+ let isResizing = false;
2065
+ let startY = 0;
2066
+ let startHeight = 0;
2067
+
2068
+ resizeHandle.addEventListener('mousedown', (e) => {
2069
+ isResizing = true;
2070
+ startY = e.clientY;
2071
+ startHeight = activitySection.offsetHeight;
2072
+ resizeHandle.classList.add('dragging');
2073
+ document.body.style.cursor = 'ns-resize';
2074
+ document.body.style.userSelect = 'none';
2075
+ e.preventDefault();
2076
+ });
2077
+
2078
+ document.addEventListener('mousemove', (e) => {
2079
+ if (!isResizing) return;
2080
+ const deltaY = startY - e.clientY;
2081
+ const newHeight = Math.min(Math.max(startHeight + deltaY, 120), 500);
2082
+ activitySection.style.height = newHeight + 'px';
2083
+ });
2084
+
2085
+ document.addEventListener('mouseup', () => {
2086
+ if (isResizing) {
2087
+ isResizing = false;
2088
+ resizeHandle.classList.remove('dragging');
2089
+ document.body.style.cursor = '';
2090
+ document.body.style.userSelect = '';
2091
+ }
2092
+ });
2093
+
2094
+ // ==================== INITIALIZATION ====================
2095
+ render();
2096
+ </script>
2097
+ </body>
2098
+ </html>