chore(cli): scaffold pnpm workspace with six packages - #1
Merged
jundymek merged 3 commits intoAug 11, 2026
Conversation
Refs: 1.1-workspace-scaffold Agent: alice (terminal-agents, claude-fable-5)
Refs: 1.1-workspace-scaffold Agent: alice (terminal-agents, claude-fable-5)
Refs: 1.1-workspace-scaffold Agent: alice (terminal-agents, claude-fable-5)
jundymek
added a commit
that referenced
this pull request
Aug 11, 2026
* docs(repo): epic 1 retrospective and story rows to done Supervisor deliverables for epic/1-workspace-scaffold, written at closure after all four story PRs (#1-#4) merged. - Epic 1 retrospective: delivery metrics, six post-run observations with cause and fix, technical debt carried forward, next-epic readiness and eight action items. First retrospective in this repository, so it also establishes the location for the next one. - sprint-status.yaml: the four Epic 1 rows flipped review -> done. Written once, by the supervisor, at closure rather than per story. Refs: epic-1-contract-foundations Agent: superman (terminal-agents, claude-opus-5) * docs(repo): keep 1.4 in review until the verdict is accepted Codex review of the closure commit raised a P1 against it, and it was right: flipping `1.4-perf-spike` to `done` while that story's owner gate is still open makes the lifecycle source of truth signal that Epic 2/3 work may proceed before the decision that releases it. The row goes back to `review` with the reason in-file, on the maintainer's call. The other three Epic 1 rows stay `done`. The retrospective records the finding. Refs: epic-1-contract-foundations Agent: superman (terminal-agents, claude-opus-5)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Creates the pnpm workspace every later story builds on: six
@gitnebula/*packages (contract,scanner,deps,githist,viz,cli) with the AD-2 dependency edges physically declared in eachpackage.json, narrowexportsmaps (deep imports do not resolve), a shared strict NodeNext tsconfig layout (AD-11: viz is DOM-only, contract is environment-neutral, the rest are Node-side), ESLint 9 flat config + Prettier with the AD-4 determinism ban, vitest wiring (one trivial suite per package), the two build edges (tsup for cli, vite for viz — placeholder outputs), a CI workflow definition, MIT LICENSE and CONTRIBUTING.md.Notable decisions (details in the story's Dev Agent Record):
no-restricted-propertieson exactlyDate.now/Math.random(notno-restricted-globals, which would also outlaw deterministicnew Date(isoFromGit)parsing that AD-13 expects). AC-3's observable behaviour is matched exactly.ci.ymlstill defines the install + lint + typecheck + test job, but its only trigger isworkflow_dispatch; restoring the push/pull_request triggers re-enables it (story 4.2 revisits the CI recipe). This is a deliberate AC-5 deviation, recorded in the spec's Dev Agent Record.onlyBuiltDependencies: [esbuild]committed so pnpm 10's install-script blocking is reproducible.noExternal), proving the AD-11 bundle property from day one.docs/dev/epic-1/1.1-workspace-scaffold/README.md(spec path — the harness checklist'sdocs/features/epic-1-omdb-data-layer/epic map belongs to a different project; spec wins, divergence flagged here).Manual verification
pnpm install && pnpm lint && pnpm typecheck && pnpm test && pnpm buildall exit 0 (Node 22, pnpm 10.34.5 via corepack).pnpm -r test: 6 test files passed, 11 tests passed (contract 1, the other five 2 each), 0 failed.Date.now()/Math.random()inpackages/scannerfails eslint with twono-restricted-propertieserrors; the identical file inpackages/clipasses (exempt).import('@gitnebula/contract/src/index.ts')fails withERR_PACKAGE_PATH_NOT_EXPORTED.node packages/cli/dist/gitnebula.jsprints the four wired pipeline packages;packages/viz/dist/index.htmlis emitted by vite.Codex review
1 finding (P1), fixed:
engines.node >=20admitted Node 20.0–20.18, which Vite 8 does not support (^20.19.0 || >=22.12.0); floor raised to>=20.19(still the architecture's Node 20 major) and documented.Known issues
sprint-status.yamlrow was flipped (1.1 → review); no shared counters/status lines touched.Refs: 1.1-workspace-scaffold
Agent: alice (terminal-agents, claude-fable-5)