Skip to content

chore(spec): close TERM-001-ghostty-bootstrap lifecycle#66

Merged
mlorentedev merged 1 commit into
mainfrom
chore/TERM-001-close-spec-lifecycle
May 20, 2026
Merged

chore(spec): close TERM-001-ghostty-bootstrap lifecycle#66
mlorentedev merged 1 commit into
mainfrom
chore/TERM-001-close-spec-lifecycle

Conversation

@mlorentedev
Copy link
Copy Markdown
Owner

Summary

Retrospective close-out for TERM-001-ghostty-bootstrap. The feature already shipped on main piecemeal:

  • PR #38 — tmux truecolor passthrough for ghostty.
  • Commit b00353e — Ghostty bootstrap for Linux: setup-linux.sh + healthcheck.sh Section 11/12 + tests/ghostty.bats (10 cases) + terminal/ghostty/config + versions.conf GHOSTTY_VERSION=1.3.0 pin.
  • Commit 7424731 — Config comments translated to English.
  • Vault runbook 40-runbooks/guide-ghostty-setup.md already live.

This PR closes the spec lifecycle: moves the folder to specs/archive/, fills tasks.md + verification.md retroactively with the evidence map, adds features.json with the 10-feature harness contract.

SDD checklist

  • Vault entry TERM-001-ghostty-bootstrap in 11-tasks.md
  • Spec folder archived to specs/archive/TERM-001-ghostty-bootstrap/
  • proposal.md frontmatter status: archived
  • tasks.md filled (retrospective implementation list pointing at the existing artefacts)
  • verification.md filled with evidence + commit hashes
  • features.json written (10 features, all state: pending; harness sets pass-state)

SDD skip rationale

Test plan

  • bats tests/ghostty.bats → 10/10 green (verified on this branch)
  • bats tests/*.bats → 673/673 unchanged (no production code touched)
  • shellcheck --severity=error clean

Pattern note

The chore: close spec lifecycle shape is the housekeeping PR that turns "feature shipped piecemeal" into "archived spec with full audit trail". It is NOT a workaround for SDD discipline — the proposal was filled before implementation. It IS the final step that closes the loop. Documented in the archived tasks.md under "Lessons" so future contributors recognise the shape.

Risk: scope creep. This PR carefully introduces ZERO production code changes — only specs/ and specs/archive/ paths.

Retrospective close-out for a feature already shipped piecemeal on main:
* PR #38 (tmux truecolor passthrough for ghostty)
* Commit b00353e (Ghostty bootstrap for Linux: setup-linux.sh + healthcheck +
  tests/ghostty.bats + terminal/ghostty/config + versions.conf pin)
* Commit 7424731 (config comments translated to English)
* Vault runbook 40-runbooks/guide-ghostty-setup.md already live

The 10 acceptance criteria are all covered by existing artefacts. This PR
moves the spec to specs/archive/ and adds:
* features.json (10 features, all state: pending; harness sets pass-state)
* tasks.md and verification.md filled with the retrospective evidence map

No production code changes. tests/ghostty.bats still 10/10 green, full bats
suite unchanged at 673/673.

Spec archive: specs/archive/TERM-001-ghostty-bootstrap/.
Closing pattern: "chore: close spec lifecycle" applies when a feature ships
piecemeal before the spec was formally archived. The pattern itself is now
documented in the archived tasks.md (look for "Lessons" heading).
@mlorentedev mlorentedev merged commit bc4cad4 into main May 20, 2026
6 checks passed
@mlorentedev mlorentedev deleted the chore/TERM-001-close-spec-lifecycle branch May 20, 2026 03:18
mlorentedev added a commit that referenced this pull request May 22, 2026
REFACTOR-002 shipped in PR #64 (env-contract path declarations) on
2026-05-20 but its spec folder was missed by the archive bundle PR #88
(2026-05-21 session close). Move to specs/archive/ to keep the active
specs/ directory accurate (only WIN-002-windows-smoke-sweep remains
genuinely open).

Same chore-close-spec-lifecycle pattern as PR #66 (TERM-001) and PR #72
(WIN-001): pure git-mv, no production code touched.
mlorentedev added a commit that referenced this pull request May 22, 2026
…t flow (#91)

* chore(REFACTOR-002): archive spec folder post-merge (PR #64)

REFACTOR-002 shipped in PR #64 (env-contract path declarations) on
2026-05-20 but its spec folder was missed by the archive bundle PR #88
(2026-05-21 session close). Move to specs/archive/ to keep the active
specs/ directory accurate (only WIN-002-windows-smoke-sweep remains
genuinely open).

Same chore-close-spec-lifecycle pattern as PR #66 (TERM-001) and PR #72
(WIN-001): pure git-mv, no production code touched.

* feat(REFACTOR-004): wire init-repo-* helpers into init-project default flow

AUDIT-005 (specs/archive-pending in vault) surfaced that
init-repo-{agents,standards,github-defaults}.{sh,ps1} -- created in
2026-05-14 via SDD-010 + SDD-013 -- have zero recorded invocations in
shell history. Built-but-unused: the spec lifecycle confirmed code
exists, but the value never landed in user practice.

This PR wires the three helpers into the default init-project.{sh,ps1}
flow so they actually fire when bootstrapping a new repo. Each
invocation is non-fatal (individual failure logs a warning and
continues, does not abort init). New opt-out flags --skip-agents /
--skip-standards / --skip-github (PS: -SkipAgents / -SkipStandards /
-SkipGithub) preserve the previous behaviour for users who want it.
init-repo-github-defaults is auto-skipped when no `origin` remote is
configured (typical for a brand-new local repo) -- silent info log.

The three standalone helper scripts themselves are bit-identical to
pre-PR state. Their independent CLI invocation continues to work for
users who run them manually on an existing repo.

Cross-OS surface:
- scripts/init-project.sh: arg parser shift to handle --skip-* flags
  before positional args (preserves existing `project-name stack`
  signature); wiring block inserted after .gitignore creation.
- scripts/init-project.ps1: 3 [switch] params added; wiring block
  inserted before the SUMMARY section; ASCII-only (no em-dash, no
  smart quotes) per PSScriptAnalyzer rule.

Tests: 9 new structural / parity bats asserts in tests/init-project.bats
(flag-parser greps, helper-presence asserts, origin-check guard,
non-fatal log_error count, PS switch presence). Full suite:
765 -> 774 PASS, 0 regressions. Existing 2 functional tests (3, 4)
that exercise the full flow still pass -- confirming `|| log_error
... continuing` correctly handles the missing-vault-template case in
test isolation.

Spec: specs/REFACTOR-004-init-project-repo-wiring/{proposal,tasks,verification}.md
Vault: 11-tasks.md REFACTOR-004 entry (downstream of REFACTOR-001 audit).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant