specs: pass openspec 1.16.1 --strict (48/48)
Merged PR in mattpolicastro/nightshift: "specs: pass openspec 1.16.1 --strict (48/48)"
View pull requestNotes on work, tech, and life.
specs: pass openspec 1.16.1 --strict (48/48)
Merged PR in mattpolicastro/nightshift: "specs: pass openspec 1.16.1 --strict (48/48)"
View pull requestMerge pull request #199 from mattpolicastro/spec/mattpolicastro__nightshift-issue-190-spec-kit-front-door-feature-naming-spec
Pushed 47 commits to mattpolicastro/nightshift • specloop: archive mattpolicastro__nightshift-issue-190-spec-kit-front-door-feature-naming-spec into openspec/specs • specloop: complete task 3.1 • specloop: task 3.1 Address review feedback 1: "**mattpolicastro:**\n\nBuild review: the code matches the approved design (naming, `drafts/@speckit/<owner>/<repo>/<change>`, pinned base, discovery, rec • specloop: append review round 1 • specloop: complete task 2.3 • specloop: task 2.3 Update `README.md` flow/enrollment, `docs/specloop/README.md`'s existing front-door section and `docs/specloop/speckit.md`'s new The front door section; update `docs/arming.md`'s re • specloop: complete task 2.2 • specloop: task 2.2 Add test_revision_round_appends_phase_with_next_task_ids to `tests/test_speckit_front_door.py` using a new local three-phase fixture with highest T root T009, asserting Phase 4: Rev • specloop: complete task 2.1 • specloop: task 2.1 Make readiness lookup format-aware in `nightshift/specloop_intake.py` using the copied run manifest and committed run head. Keep the current checklist physical-line/citation grammar • specloop: complete task 1.3 • specloop: task 1.3 Migrate native identity consumers in `nightshift/arm.py`::front_door_issue and `nightshift/touchpoints.py`'s producer fallback, preserving repository checks and old patterns. Recogn • specloop: complete task 1.2.3 • specloop: task 1.2.3 Wire target selection and task 1.1's pinned base into gated new-proposal dispatch, add the feature-directory line only to newly created native PRs, and test both forges for stale • specloop: complete task 1.2.2 • specloop: task 1.2.2 Integrate trusted-manifest naming and bounded native/qualified/legacy PR recovery before blocker checks, preserving recorded identities, authorization, merged suppression and repl • specloop: complete task 1.2.1 • specloop: task 1.2.1 Implement format-aware naming and physical-line target-selection helpers with pinned-commit tree/spec validation and tests in tests/test_speckit_front_door.py, covering `issue-int • specloop: split task 1.2 into 3 subtasks • specloop: complete task 1.1 • specloop: task 1.1 Update proposal setup in `specloop/propose.py` and `specloop/cli.py`: select managed output with draft_output(m), using trusted m.github owner/repository as separate validated compo • Draft OpenSpec change mattpolicastro__nightshift-issue-190-spec-kit-front-door-feature-naming-spec (specloop propose, round 3) • Draft OpenSpec change mattpolicastro__nightshift-issue-190-spec-kit-front-door-feature-naming-spec (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-190-spec-kit-front-door-feature-naming-spec (specloop propose, round 1) • Draft OpenSpec change mattpolicastro__nightshift-issue-190-spec-kit-front-door-feature-naming-spec (specloop propose, round 1) • specloop: archive mattpolicastro__nightshift-issue-190-spec-kit-front-door-feature-naming-spec into openspec/specs • specloop: complete task 3.1 • specloop: task 3.1 Address review feedback 1: "**mattpolicastro:**\n\nBuild review: the code matches the approved design (naming, `drafts/@speckit/<owner>/<repo>/<change>`, pinned base, discovery, rec • specloop: append review round 1 • specloop: complete task 2.3 • specloop: task 2.3 Update `README.md` flow/enrollment, `docs/specloop/README.md`'s existing front-door section and `docs/specloop/speckit.md`'s new The front door section; update `docs/arming.md`'s re • specloop: complete task 2.2 • specloop: task 2.2 Add test_revision_round_appends_phase_with_next_task_ids to `tests/test_speckit_front_door.py` using a new local three-phase fixture with highest T root T009, asserting Phase 4: Rev • specloop: complete task 2.1 • specloop: task 2.1 Make readiness lookup format-aware in `nightshift/specloop_intake.py` using the copied run manifest and committed run head. Keep the current checklist physical-line/citation grammar • specloop: complete task 1.3 • specloop: task 1.3 Migrate native identity consumers in `nightshift/arm.py`::front_door_issue and `nightshift/touchpoints.py`'s producer fallback, preserving repository checks and old patterns. Recogn • specloop: complete task 1.2.3 • specloop: task 1.2.3 Wire target selection and task 1.1's pinned base into gated new-proposal dispatch, add the feature-directory line only to newly created native PRs, and test both forges for stale • specloop: complete task 1.2.2 • specloop: task 1.2.2 Integrate trusted-manifest naming and bounded native/qualified/legacy PR recovery before blocker checks, preserving recorded identities, authorization, merged suppression and repl • specloop: complete task 1.2.1 • specloop: task 1.2.1 Implement format-aware naming and physical-line target-selection helpers with pinned-commit tree/spec validation and tests in tests/test_speckit_front_door.py, covering `issue-int • specloop: split task 1.2 into 3 subtasks • specloop: complete task 1.1 • specloop: task 1.1 Update proposal setup in `specloop/propose.py` and `specloop/cli.py`: select managed output with draft_output(m), using trusted m.github owner/repository as separate validated compo
View commitsSpec: spec-kit: front door (feature naming, spec PR, readiness checks, revision rounds)
Merged PR in mattpolicastro/nightshift: "Spec: spec-kit: front door (feature naming, spec PR, readiness checks, revision rounds)"
View pull requestWhy is it all so stupid.
Hoodlum 🇺🇸 (@nothoodlum.bsky.social)View on BlueskyTrump is now posting AI videos that show him hiring Russian and Chechen goons to beat up American journalists for asking questions. He should be institutionalized.
Draft OpenSpec change mattpolicastro__nightshift-issue-190-spec-kit-front-door-feature-naming-spec (specloop propose, round 3)
Pushed 253 commits to mattpolicastro/nightshift • Draft OpenSpec change mattpolicastro__nightshift-issue-190-spec-kit-front-door-feature-naming-spec (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-190-spec-kit-front-door-feature-naming-spec (specloop propose, round 1) • Merge pull request #198 from mattpolicastro/spec/mattpolicastro__nightshift-issue-189-spec-kit-drafter-feasibility-and-critic • specloop: archive mattpolicastro__nightshift-issue-189-spec-kit-drafter-feasibility-and-critic into openspec/specs • specloop: complete task 2.3 • specloop: task 2.3 Document native drafting in `docs/specloop/README.md` and “What the drafter produces” in `docs/specloop/speckit.md`, preserving the existing OpenSpec drafting prose. In the new draf • specloop: complete task 2.2 • specloop: task 2.2 Complete native sizing wording in `specloop/propose.py` and `specloop/critic.py`: six-task recommendation per story, unchanged per-task ceiling, and advisory risk only above eight t • specloop: complete task 2.1 • specloop: task 2.1 Add native selection for IMPLEMENT, REVIEW, GATE_REVIEW and ARBITER in `specloop/prompts.py` and wire all four `specloop/loop.py` rendering sites through it, keeping the scenario-ID • specloop: complete task 1.3 • specloop: task 1.3 Strengthen the tests so each of these single-line mutations of code added in section 1 makes a test fail; where a mutation genuinely cannot change behaviour, say why in a comment on • specloop: strengthen section 1 after its evidence check • specloop: complete task 1.2 • specloop: task 1.2 Add manifest-selected native feasibility/critic wording in `specloop/feasibility.py` and `specloop/critic.py`, preserving the original PROMPT strings, eight checklist items, schemas • specloop: complete task 1.1 • specloop: task 1.1 Add native drafting and question routing in `specloop/propose.py`: select the native prompt by manifest format, require local templates/house rules and in-place undelivered-feature • Draft OpenSpec change mattpolicastro__nightshift-issue-189-spec-kit-drafter-feasibility-and-critic (specloop propose, round 3) • Draft OpenSpec change mattpolicastro__nightshift-issue-189-spec-kit-drafter-feasibility-and-critic (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-189-spec-kit-drafter-feasibility-and-critic (specloop propose, round 1) • Draft OpenSpec change mattpolicastro__nightshift-issue-189-spec-kit-drafter-feasibility-and-critic (specloop propose, round 1) • specloop: archive mattpolicastro__nightshift-issue-189-spec-kit-drafter-feasibility-and-critic into openspec/specs • specloop: complete task 2.3 • specloop: task 2.3 Document native drafting in `docs/specloop/README.md` and “What the drafter produces” in `docs/specloop/speckit.md`, preserving the existing OpenSpec drafting prose. In the new draf • specloop: complete task 2.2 • specloop: task 2.2 Complete native sizing wording in `specloop/propose.py` and `specloop/critic.py`: six-task recommendation per story, unchanged per-task ceiling, and advisory risk only above eight t • specloop: complete task 2.1 • specloop: task 2.1 Add native selection for IMPLEMENT, REVIEW, GATE_REVIEW and ARBITER in `specloop/prompts.py` and wire all four `specloop/loop.py` rendering sites through it, keeping the scenario-ID • specloop: complete task 1.3 • specloop: task 1.3 Strengthen the tests so each of these single-line mutations of code added in section 1 makes a test fail; where a mutation genuinely cannot change behaviour, say why in a comment on • specloop: strengthen section 1 after its evidence check • specloop: complete task 1.2 • specloop: task 1.2 Add manifest-selected native feasibility/critic wording in `specloop/feasibility.py` and `specloop/critic.py`, preserving the original PROMPT strings, eight checklist items, schemas • specloop: complete task 1.1 • specloop: task 1.1 Add native drafting and question routing in `specloop/propose.py`: select the native prompt by manifest format, require local templates/house rules and in-place undelivered-feature • Draft OpenSpec change mattpolicastro__nightshift-issue-189-spec-kit-drafter-feasibility-and-critic (specloop propose, round 3) • Draft OpenSpec change mattpolicastro__nightshift-issue-189-spec-kit-drafter-feasibility-and-critic (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-189-spec-kit-drafter-feasibility-and-critic (specloop propose, round 1) • Merge pull request #197 from mattpolicastro/spec/mattpolicastro__nightshift-issue-188-spec-kit-adapter-on-the-build-path-admit • specloop: archive mattpolicastro__nightshift-issue-188-spec-kit-adapter-on-the-build-path-admit into openspec/specs • specloop: complete task 3.1 • specloop: task 3.1 After merging main (`0172818e`, which landed #191's standalone OpenSpec binary), three documentation tests contradict the merged docs: two cases in `tests/test_openspec_binary_docs. • specloop: append base reconciliation task 3.1 • specloop: merge main (0172818e) into run branch; resolve docs/specloop/README.md • specloop: complete task 2.3 • specloop: task 2.3 Add `examples/specloop/speckit.toml` and update the scoped passages in `README.md`, `docs/specloop/README.md`, `docs/specloop/command-json.md`, `KNOWN-LIMITATIONS.md`, `plugins/nigh • specloop: complete task 2.2 • specloop: task 2.2 Verify native finish recovery in new `tests/test_speckit_finish_recovery.py` with real temporary Git histories and fake GitHub/Gitea responses: failed/timed-out push, lost/failed re • specloop: complete task 2.1 • specloop: task 2.1 Implement native `speckit.finish` and its optional-head adapter seam, then branch native completion in `specloop/cli.py::_finish` while leaving OpenSpec clone/archive behavior intac • specloop: complete task 1.4 • specloop: task 1.4 Complete native context/committed-plan collection through `specloop/spec_format.py` and generic gate/context handling in `specloop/loop.py`. Reuse existing literal Human checks rule • specloop: complete task 1.3 • specloop: task 1.3 Add adapter-owned `append_round` in `specloop/spec_format.py`/`specloop/speckit.py` and route both fresh revision and candidate replay reconstruction in `specloop/revise.py` through • specloop: complete task 1.2 • specloop: task 1.2 Enable `get(m)` to return `SPECKIT` and complete native validation/paths/labels in `specloop/spec_format.py` and `specloop/speckit.py`, and native admission in `specloop/cli.py`. Us • specloop: complete task 1.1 • specloop: task 1.1 Add adapter-owned task operations in `specloop/spec_format.py` and native helpers in `specloop/speckit.py`; keep `specloop/tasks.py` unchanged. OPENSPEC delegates parse/tick/split/e • Draft OpenSpec change mattpolicastro__nightshift-issue-188-spec-kit-adapter-on-the-build-path-admit (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-188-spec-kit-adapter-on-the-build-path-admit (specloop propose, round 1) • Draft OpenSpec change mattpolicastro__nightshift-issue-188-spec-kit-adapter-on-the-build-path-admit (specloop propose, round 2) • specloop: archive mattpolicastro__nightshift-issue-188-spec-kit-adapter-on-the-build-path-admit into openspec/specs • specloop: complete task 3.1 • specloop: task 3.1 After merging main (`0172818e`, which landed #191's standalone OpenSpec binary), three documentation tests contradict the merged docs: two cases in `tests/test_openspec_binary_docs. • specloop: append base reconciliation task 3.1 • specloop: merge main (0172818e) into run branch; resolve docs/specloop/README.md • specloop: complete task 2.3 • specloop: task 2.3 Add `examples/specloop/speckit.toml` and update the scoped passages in `README.md`, `docs/specloop/README.md`, `docs/specloop/command-json.md`, `KNOWN-LIMITATIONS.md`, `plugins/nigh • specloop: complete task 2.2 • specloop: task 2.2 Verify native finish recovery in new `tests/test_speckit_finish_recovery.py` with real temporary Git histories and fake GitHub/Gitea responses: failed/timed-out push, lost/failed re • specloop: complete task 2.1 • specloop: task 2.1 Implement native `speckit.finish` and its optional-head adapter seam, then branch native completion in `specloop/cli.py::_finish` while leaving OpenSpec clone/archive behavior intac • specloop: complete task 1.4 • specloop: task 1.4 Complete native context/committed-plan collection through `specloop/spec_format.py` and generic gate/context handling in `specloop/loop.py`. Reuse existing literal Human checks rule • specloop: complete task 1.3 • specloop: task 1.3 Add adapter-owned `append_round` in `specloop/spec_format.py`/`specloop/speckit.py` and route both fresh revision and candidate replay reconstruction in `specloop/revise.py` through • specloop: complete task 1.2 • specloop: task 1.2 Enable `get(m)` to return `SPECKIT` and complete native validation/paths/labels in `specloop/spec_format.py` and `specloop/speckit.py`, and native admission in `specloop/cli.py`. Us • specloop: complete task 1.1 • Merge pull request #196 from mattpolicastro/spec/mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b • specloop: task 1.1 Add adapter-owned task operations in `specloop/spec_format.py` and native helpers in `specloop/speckit.py`; keep `specloop/tasks.py` unchanged. OPENSPEC delegates parse/tick/split/e • specloop: archive mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b into openspec/specs • specloop: merge main (5284294d) into run branch; resolve docs/specloop/README.md • specloop: complete task 1.4 • specloop: task 1.4 Document the verified installation using the release assets established by 1.2 in `docs/deploy.md#install-openspec`, and update the narrowly scoped shared passages in `README.md`, ` • specloop: complete task 1.3 • specloop: task 1.3 Correct the OpenSpec/npx rationale in `plugins/nightshift/server/factory.ts` and `plugins/nightshift/server/host-paths.ts` while retaining `NIGHTSHIFT_NODE_BIN`, its default and Fac • specloop: complete task 1.2 • specloop: task 1.2 Add the independent OpenSpec host check in `nightshift/preflight.py`, reusing the resolver and version constant from 1.1 and freshly verifying file/executable status, binary SHA-256 • specloop: complete task 1.1 • specloop: task 1.1 Implement literal executable resolution, `VERSION`, the successful per-path process version gate and direct JSON invocation in `specloop/openspec.py`; preserve environment, timeout, • Draft OpenSpec change mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b (specloop propose, round 3) • Draft OpenSpec change mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b (specloop propose, round 2) • Merge pull request #196 from mattpolicastro/spec/mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b • specloop: archive mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b into openspec/specs • specloop: merge main (5284294d) into run branch; resolve docs/specloop/README.md • specloop: complete task 1.4 • specloop: task 1.4 Document the verified installation using the release assets established by 1.2 in `docs/deploy.md#install-openspec`, and update the narrowly scoped shared passages in `README.md`, ` • specloop: complete task 1.3 • specloop: task 1.3 Correct the OpenSpec/npx rationale in `plugins/nightshift/server/factory.ts` and `plugins/nightshift/server/host-paths.ts` while retaining `NIGHTSHIFT_NODE_BIN`, its default and Fac • specloop: complete task 1.2 • specloop: task 1.2 Add the independent OpenSpec host check in `nightshift/preflight.py`, reusing the resolver and version constant from 1.1 and freshly verifying file/executable status, binary SHA-256 • specloop: complete task 1.1 • specloop: task 1.1 Implement literal executable resolution, `VERSION`, the successful per-path process version gate and direct JSON invocation in `specloop/openspec.py`; preserve environment, timeout, • Draft OpenSpec change mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b (specloop propose, round 3) • Draft OpenSpec change mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b (specloop propose, round 2) • specloop: archive mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b into openspec/specs • Draft OpenSpec change mattpolicastro__nightshift-issue-188-spec-kit-adapter-on-the-build-path-admit (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-188-spec-kit-adapter-on-the-build-path-admit (specloop propose, round 1) • specloop: merge main (5284294d) into run branch; resolve docs/specloop/README.md • specloop: complete task 1.4 • specloop: task 1.4 Document the verified installation using the release assets established by 1.2 in `docs/deploy.md#install-openspec`, and update the narrowly scoped shared passages in `README.md`, ` • specloop: complete task 1.3 • specloop: task 1.3 Correct the OpenSpec/npx rationale in `plugins/nightshift/server/factory.ts` and `plugins/nightshift/server/host-paths.ts` while retaining `NIGHTSHIFT_NODE_BIN`, its default and Fac • specloop: complete task 1.2 • specloop: task 1.2 Add the independent OpenSpec host check in `nightshift/preflight.py`, reusing the resolver and version constant from 1.1 and freshly verifying file/executable status, binary SHA-256 • specloop: complete task 1.1 • specloop: task 1.1 Implement literal executable resolution, `VERSION`, the successful per-path process version gate and direct JSON invocation in `specloop/openspec.py`; preserve environment, timeout, • Merge pull request #194 from mattpolicastro/spec/mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh • Merge branch 'main' into spec/mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh • specloop: archive mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh into openspec/specs • Merge pull request #195 from mattpolicastro/spec/mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i • specloop: archive mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i into openspec/specs • Merge current PR base 4b352b3701b6df53b9eff4ae8458c92e094c8593 • specloop: merge main (4b352b37) into run branch; resolve docs/specloop/README.md • specloop: complete task 3.1 • specloop: complete task 2.1 • specloop: task 3.1 Address review feedback 1: "**mattpolicastro:**\n\nFor the next revision round (found by the live preset check on spec-kit 1.3.2, recorded on #184):\n\n- `presets/nightshift-speckit • specloop: append review round 2 • specloop: task 2.1 Address review feedback 1: "**mattpolicastro:**\n\nCI `test` fails at collection on Python 3.12 (run 42422605947):\n\n```\nERROR tests/test_speckit_format.py - AttributeError: 'Fiel • specloop: append review round 1 • specloop: complete task 2.1 • specloop: task 2.1 Address review feedback 1: "**mattpolicastro:**\n\nBuild review: the house rules and the preset match the approved design, and types/plugin CI pass. One wording round before finish, • specloop: complete task 1.5 • specloop: task 1.5 Complete the module's pure text helpers `questions`, `human_checks` and `mark_complete`, with `test_questions_from_clarification_markers`, `test_mark_complete_is_idempotent` and foc • specloop: complete task 1.4 • specloop: task 1.4 Add `validate` to `specloop/speckit.py` with all ten design rules, deterministic `path:line: message` diagnostics, readable-input handling and aggregate minimum-content errors. Reus • specloop: complete task 1.3 • specloop: task 1.3 Add `parse_tasks` to `specloop/speckit.py`, returning the existing `Task` type with original flags, backticks and zero-based source lines. Reuse `tasks.TASK` and `tasks.SCENARIO_REF • specloop: complete task 1.2 • specloop: task 1.2 Add `specloop/speckit.py` with `feature_dir`, the small spec records, `parse_spec` and `scenario_ids`; add the three-story authored `tests/fixtures/speckit/specs/042-add-a-gate/spec • specloop: complete task 1.1 • specloop: append review round 1 • specloop: task 1.1 Copy `spec-template.md`, `plan-template.md` and `tasks-template.md` byte-for-byte from `tests/fixtures/speckit-upstream/v1.3.2/templates/` to `tests/fixtures/speckit/.specify/templa • Merge current PR base a61131e90689760b68983ac009283df95d116f60 • specloop: complete task 1.2 • specloop: task 1.2 Add exactly `presets/nightshift-speckit/preset.yml`, `presets/nightshift-speckit/templates/spec-template.md`, `presets/nightshift-speckit/templates/tasks-template.md`, `presets/nigh • specloop: complete task 1.1 • specloop: task 1.1 Add `docs/specloop/speckit.md` with all eight exact rule headings, reasons and examples from design.md; add the one-sentence link under `docs/specloop/README.md`'s How the engine wo • Draft OpenSpec change mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i (specloop propose, round 1) • Draft OpenSpec change mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh (specloop propose, round 1) • Draft OpenSpec change mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh (specloop propose, round 1) • Merge pull request #194 from mattpolicastro/spec/mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh • Merge branch 'main' into spec/mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh • specloop: archive mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh into openspec/specs • specloop: merge main (4b352b37) into run branch; resolve docs/specloop/README.md • specloop: complete task 3.1 • specloop: task 3.1 Address review feedback 1: "**mattpolicastro:**\n\nFor the next revision round (found by the live preset check on spec-kit 1.3.2, recorded on #184):\n\n- `presets/nightshift-speckit • specloop: append review round 2 • specloop: complete task 2.1 • specloop: task 2.1 Address review feedback 1: "**mattpolicastro:**\n\nBuild review: the house rules and the preset match the approved design, and types/plugin CI pass. One wording round before finish, • specloop: append review round 1 • Merge current PR base a61131e90689760b68983ac009283df95d116f60 • specloop: complete task 1.2 • specloop: task 1.2 Add exactly `presets/nightshift-speckit/preset.yml`, `presets/nightshift-speckit/templates/spec-template.md`, `presets/nightshift-speckit/templates/tasks-template.md`, `presets/nigh • specloop: complete task 1.1 • specloop: task 1.1 Add `docs/specloop/speckit.md` with all eight exact rule headings, reasons and examples from design.md; add the one-sentence link under `docs/specloop/README.md`'s How the engine wo • Draft OpenSpec change mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh (specloop propose, round 1) • Draft OpenSpec change mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh (specloop propose, round 1) • Draft OpenSpec change mattpolicastro__nightshift-issue-191-openspec-pinned-checksummed-standalone-b (specloop propose, round 2) • Merge branch 'main' into spec/mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh • Merge pull request #195 from mattpolicastro/spec/mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i • specloop: archive mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i into openspec/specs • Merge current PR base 4b352b3701b6df53b9eff4ae8458c92e094c8593 • specloop: complete task 2.1 • specloop: task 2.1 Address review feedback 1: "**mattpolicastro:**\n\nCI `test` fails at collection on Python 3.12 (run 42422605947):\n\n```\nERROR tests/test_speckit_format.py - AttributeError: 'Fiel • specloop: append review round 1 • specloop: complete task 1.5 • specloop: task 1.5 Complete the module's pure text helpers `questions`, `human_checks` and `mark_complete`, with `test_questions_from_clarification_markers`, `test_mark_complete_is_idempotent` and foc • specloop: complete task 1.4 • specloop: task 1.4 Add `validate` to `specloop/speckit.py` with all ten design rules, deterministic `path:line: message` diagnostics, readable-input handling and aggregate minimum-content errors. Reus • specloop: complete task 1.3 • specloop: task 1.3 Add `parse_tasks` to `specloop/speckit.py`, returning the existing `Task` type with original flags, backticks and zero-based source lines. Reuse `tasks.TASK` and `tasks.SCENARIO_REF • specloop: complete task 1.2 • specloop: task 1.2 Add `specloop/speckit.py` with `feature_dir`, the small spec records, `parse_spec` and `scenario_ids`; add the three-story authored `tests/fixtures/speckit/specs/042-add-a-gate/spec • specloop: complete task 1.1 • specloop: task 1.1 Copy `spec-template.md`, `plan-template.md` and `tasks-template.md` byte-for-byte from `tests/fixtures/speckit-upstream/v1.3.2/templates/` to `tests/fixtures/speckit/.specify/templa • Draft OpenSpec change mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i (specloop propose, round 1) • Draft OpenSpec change mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i (specloop propose, round 2) • specloop: archive mattpolicastro__nightshift-issue-185-spec-kit-house-rules-doc-and-the-nightsh into openspec/specs • Merge pull request #195 from mattpolicastro/spec/mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i • specloop: archive mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i into openspec/specs • Merge current PR base 4b352b3701b6df53b9eff4ae8458c92e094c8593 • specloop: complete task 2.1 • specloop: task 2.1 Address review feedback 1: "**mattpolicastro:**\n\nCI `test` fails at collection on Python 3.12 (run 42422605947):\n\n```\nERROR tests/test_speckit_format.py - AttributeError: 'Fiel • specloop: append review round 1 • specloop: complete task 1.5 • specloop: task 1.5 Complete the module's pure text helpers `questions`, `human_checks` and `mark_complete`, with `test_questions_from_clarification_markers`, `test_mark_complete_is_idempotent` and foc • specloop: complete task 1.4 • specloop: task 1.4 Add `validate` to `specloop/speckit.py` with all ten design rules, deterministic `path:line: message` diagnostics, readable-input handling and aggregate minimum-content errors. Reus • specloop: complete task 1.3 • specloop: task 1.3 Add `parse_tasks` to `specloop/speckit.py`, returning the existing `Task` type with original flags, backticks and zero-based source lines. Reuse `tasks.TASK` and `tasks.SCENARIO_REF • specloop: complete task 1.2 • specloop: task 1.2 Add `specloop/speckit.py` with `feature_dir`, the small spec records, `parse_spec` and `scenario_ids`; add the three-story authored `tests/fixtures/speckit/specs/042-add-a-gate/spec • specloop: complete task 1.1 • specloop: task 1.1 Copy `spec-template.md`, `plan-template.md` and `tasks-template.md` byte-for-byte from `tests/fixtures/speckit-upstream/v1.3.2/templates/` to `tests/fixtures/speckit/.specify/templa • Draft OpenSpec change mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i (specloop propose, round 1) • Draft OpenSpec change mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i (specloop propose, round 2) • specloop: archive mattpolicastro__nightshift-issue-186-spec-kit-parser-validator-and-scenario-i into openspec/specs • Merge current PR base 4b352b3701b6df53b9eff4ae8458c92e094c8593 • specloop: complete task 2.1 • Merge pull request #192 from mattpolicastro/spec/mattpolicastro__nightshift-issue-187-engine-a-format-seam-with-the-openspec-a • specloop: task 2.1 Address review feedback 1: "**mattpolicastro:**\n\nCI `test` fails at collection on Python 3.12 (run 42422605947):\n\n```\nERROR tests/test_speckit_format.py - AttributeError: 'Fiel • specloop: append review round 1 • specloop: archive mattpolicastro__nightshift-issue-187-engine-a-format-seam-with-the-openspec-a into openspec/specs • Merge current PR base a61131e90689760b68983ac009283df95d116f60 • specloop: complete task 2.2 • specloop: task 2.2 Add the formats paragraph to `docs/specloop/README.md` under How the engine works, the manifest field/refusal contract to `docs/specloop/command-json.md`, and explicit OpenSpec sele • specloop: complete task 2.1 • specloop: task 2.1 Wire `[run] format` parsing in `specloop/manifest.py` with `openspec` default and retained explicit `speckit`; have `specloop/cli.py::problems_with` return the selector's exact unav • specloop: complete task 1.3 • specloop: task 1.3 Substitute adapter calls in `specloop/cli.py` and `specloop/propose.py` for validation, scenario lookup, tasks, confinement, in-flight reads, staging, PR labels and finish, includin • specloop: complete task 1.2 • specloop: task 1.2 Substitute adapter calls in `specloop/loop.py` for task paths, all scenario lookups, context copying and the retained `design_human_checks` wrapper; substitute the task path in `spe • specloop: complete task 1.1 • specloop: task 1.1 Add `specloop/spec_format.py` with the exact protocol, `OPENSPEC` and `get(m)`; add only the defaulted trailing `Manifest.format` field in `specloop/manifest.py` so selection type-c • Draft OpenSpec change mattpolicastro__nightshift-issue-187-engine-a-format-seam-with-the-openspec-a (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-187-engine-a-format-seam-with-the-openspec-a (specloop propose, round 1) • specloop: merge main (4b352b37) into run branch; resolve docs/specloop/README.md • specloop: complete task 3.1 • Merge pull request #192 from mattpolicastro/spec/mattpolicastro__nightshift-issue-187-engine-a-format-seam-with-the-openspec-a • specloop: task 3.1 Address review feedback 1: "**mattpolicastro:**\n\nFor the next revision round (found by the live preset check on spec-kit 1.3.2, recorded on #184):\n\n- `presets/nightshift-speckit • specloop: append review round 2 • specloop: archive mattpolicastro__nightshift-issue-187-engine-a-format-seam-with-the-openspec-a into openspec/specs • Merge current PR base a61131e90689760b68983ac009283df95d116f60 • specloop: complete task 2.2 • specloop: task 2.2 Add the formats paragraph to `docs/specloop/README.md` under How the engine works, the manifest field/refusal contract to `docs/specloop/command-json.md`, and explicit OpenSpec sele • specloop: complete task 2.1 • specloop: task 2.1 Wire `[run] format` parsing in `specloop/manifest.py` with `openspec` default and retained explicit `speckit`; have `specloop/cli.py::problems_with` return the selector's exact unav • specloop: complete task 1.3 • specloop: task 1.3 Substitute adapter calls in `specloop/cli.py` and `specloop/propose.py` for validation, scenario lookup, tasks, confinement, in-flight reads, staging, PR labels and finish, includin • specloop: complete task 1.2 • specloop: task 1.2 Substitute adapter calls in `specloop/loop.py` for task paths, all scenario lookups, context copying and the retained `design_human_checks` wrapper; substitute the task path in `spe • specloop: complete task 1.1 • specloop: task 1.1 Add `specloop/spec_format.py` with the exact protocol, `OPENSPEC` and `get(m)`; add only the defaulted trailing `Manifest.format` field in `specloop/manifest.py` so selection type-c • Draft OpenSpec change mattpolicastro__nightshift-issue-187-engine-a-format-seam-with-the-openspec-a (specloop propose, round 2) • Draft OpenSpec change mattpolicastro__nightshift-issue-187-engine-a-format-seam-with-the-openspec-a (specloop propose, round 1)
View commitsSpec: spec-kit: drafter, feasibility and critic
Merged PR in mattpolicastro/nightshift: "Spec: spec-kit: drafter, feasibility and critic"
View pull requestSpec: spec-kit: adapter on the build path (admit, run, gates, publish, finish)
Merged PR in mattpolicastro/nightshift: "Spec: spec-kit: adapter on the build path (admit, run, gates, publish, finish)"
View pull requestSpec: OpenSpec: pinned, checksummed standalone binary replaces npx; bump to 1.16.1
Merged PR in mattpolicastro/nightshift: "Spec: OpenSpec: pinned, checksummed standalone binary replaces npx; bump to 1.16.1"
View pull requestSpec: spec-kit: house-rules doc and the nightshift-speckit preset
Merged PR in mattpolicastro/nightshift: "Spec: spec-kit: house-rules doc and the nightshift-speckit preset"
View pull requestSpec: spec-kit: parser, validator and scenario IDs (specloop/speckit.py)
Merged PR in mattpolicastro/nightshift: "Spec: spec-kit: parser, validator and scenario IDs (specloop/speckit.py)"
View pull request