Compare commits
4 commits
84bbec5ece
...
65d8a4677c
| Author | SHA1 | Date | |
|---|---|---|---|
| 65d8a4677c | |||
| eeb5e6159e | |||
| de599d1850 | |||
| 24de9f41a4 |
5 changed files with 55 additions and 15 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
---
|
---
|
||||||
description: Cross-artifact consistency check across all formspec artifacts
|
description: Cross-artifact consistency check across all formspec artifacts
|
||||||
|
argument-hint: [scope]
|
||||||
allowed-tools: [Read, Glob, Grep, Bash, Task]
|
allowed-tools: [Read, Glob, Grep, Bash, Task]
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,10 @@ Every requirement from Phase 1 must appear in this table. If a requirement canno
|
||||||
|
|
||||||
## Phase 4 — Run TLC model checker
|
## Phase 4 — Run TLC model checker
|
||||||
|
|
||||||
Run:
|
If `spec/hooks/run-checks` exists and is executable, delegate TLC verification to it instead of running locally (see `/formspec.init` for the hook interface). Present the returned results to the developer, including any dashboard URLs, and skip to Phase 5.
|
||||||
|
|
||||||
|
If the hook does not exist or fails, run TLC locally:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
tlc spec/formal/System.tla -config spec/formal/System.cfg -workers auto -metadir /tmp/tlc-states -cleanup
|
tlc spec/formal/System.tla -config spec/formal/System.cfg -workers auto -metadir /tmp/tlc-states -cleanup
|
||||||
```
|
```
|
||||||
|
|
@ -113,11 +116,7 @@ Parse the TLC output to determine:
|
||||||
|
|
||||||
### All properties pass
|
### All properties pass
|
||||||
|
|
||||||
If `spec/hooks/run-checks` exists and is executable, delegate TLC verification to it instead of running TLC locally (see `/formspec.init` for the hook interface). Present the returned results to the developer, including any dashboard URLs.
|
Update all statuses in `spec/formal/traceability.md` from `formalized` to `checked`. Report success with a summary of what was verified: number of properties checked, state space explored, time taken. Suggest proceeding with `/formspec.plan.4` to create an implementation plan.
|
||||||
|
|
||||||
If the hook does not exist or fails, run TLC locally as described in Phase 4.
|
|
||||||
|
|
||||||
In either case, update all statuses in `spec/formal/traceability.md` from `formalized` to `checked`. Report success with a summary of what was verified: number of properties checked, state space explored, time taken. Suggest proceeding with `/formspec.plan.4` to create an implementation plan.
|
|
||||||
|
|
||||||
### Meaning drift detected (Phase 2 issue)
|
### Meaning drift detected (Phase 2 issue)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,9 @@ After unit tests pass, mark the task complete in `spec/tasks.md` (e.g., append `
|
||||||
|
|
||||||
**e. Continue to next task**:
|
**e. Continue to next task**:
|
||||||
|
|
||||||
After completing a task, if the next task's dependencies are all met, continue implementing it without stopping. Keep going until either:
|
After completing a task, present a brief summary of what was implemented and the test results. Then ask the developer whether to continue to the next task or pause for review. If the developer chooses to continue (or has previously indicated they want uninterrupted execution), proceed to the next task whose dependencies are all met.
|
||||||
|
|
||||||
|
Stop regardless of the developer's preference when:
|
||||||
- A unit test failure or spec inconsistency requires developer input
|
- A unit test failure or spec inconsistency requires developer input
|
||||||
- A verification milestone is reached (all of its tasks are now complete)
|
- A verification milestone is reached (all of its tasks are now complete)
|
||||||
- No more tasks are ready (unmet dependencies)
|
- No more tasks are ready (unmet dependencies)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
---
|
---
|
||||||
description: Run the TLC model checker on the formal specification
|
description: Run the TLC model checker on the formal specification
|
||||||
|
argument-hint: [property-name]
|
||||||
allowed-tools: [Read, Glob, Grep, Bash]
|
allowed-tools: [Read, Glob, Grep, Bash]
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -89,15 +89,19 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package diminish)
|
(use-package diminish
|
||||||
|
:ensure t
|
||||||
|
)
|
||||||
|
|
||||||
(use-package better-defaults
|
(use-package better-defaults
|
||||||
:ensure (:repo "https://git.sr.ht/~technomancy/better-defaults"))
|
:ensure (:repo "https://git.sr.ht/~technomancy/better-defaults"))
|
||||||
|
|
||||||
(use-package treemacs-icons-dired
|
(use-package treemacs-icons-dired
|
||||||
|
:ensure t
|
||||||
:hook (dired-mode . treemacs-icons-dired-mode))
|
:hook (dired-mode . treemacs-icons-dired-mode))
|
||||||
|
|
||||||
(use-package dired-subtree
|
(use-package dired-subtree
|
||||||
|
:ensure t
|
||||||
:after dired
|
:after dired
|
||||||
:bind (:map dired-mode-map
|
:bind (:map dired-mode-map
|
||||||
("<tab>" . dired-subtree-toggle)
|
("<tab>" . dired-subtree-toggle)
|
||||||
|
|
@ -119,11 +123,14 @@
|
||||||
:diminish undo-tree-mode
|
:diminish undo-tree-mode
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package transient)
|
(use-package transient
|
||||||
|
:ensure t
|
||||||
|
)
|
||||||
|
|
||||||
(use-package cond-let
|
(use-package cond-let
|
||||||
:ensure (:repo "https://github.com/tarsius/cond-let"))
|
:ensure (:repo "https://github.com/tarsius/cond-let"))
|
||||||
(use-package magit
|
(use-package magit
|
||||||
|
:ensure t
|
||||||
:bind (("C-x g" . magit-status)
|
:bind (("C-x g" . magit-status)
|
||||||
("C-x M-g" . magit-list-repositories))
|
("C-x M-g" . magit-list-repositories))
|
||||||
:init
|
:init
|
||||||
|
|
@ -134,6 +141,7 @@
|
||||||
("~/Projects/" . 1))))
|
("~/Projects/" . 1))))
|
||||||
|
|
||||||
(use-package nyan-mode
|
(use-package nyan-mode
|
||||||
|
:ensure t
|
||||||
:init
|
:init
|
||||||
(nyan-mode 1)
|
(nyan-mode 1)
|
||||||
:custom
|
:custom
|
||||||
|
|
@ -141,9 +149,11 @@
|
||||||
(nyan-wavy-trail t))
|
(nyan-wavy-trail t))
|
||||||
|
|
||||||
(use-package mozc
|
(use-package mozc
|
||||||
|
:ensure t
|
||||||
:bind (("C-c m" . mozc-mode)))
|
:bind (("C-c m" . mozc-mode)))
|
||||||
|
|
||||||
(use-package material-theme
|
(use-package material-theme
|
||||||
|
:ensure t
|
||||||
:config
|
:config
|
||||||
(load-theme 'material t))
|
(load-theme 'material t))
|
||||||
|
|
||||||
|
|
@ -155,6 +165,7 @@
|
||||||
("s-d" . windmove-right)))
|
("s-d" . windmove-right)))
|
||||||
|
|
||||||
(use-package counsel
|
(use-package counsel
|
||||||
|
:ensure t
|
||||||
:bind (("C-s" . swiper-isearch)
|
:bind (("C-s" . swiper-isearch)
|
||||||
("M-x" . counsel-M-x)
|
("M-x" . counsel-M-x)
|
||||||
("M-y" . counsel-yank-pop)
|
("M-y" . counsel-yank-pop)
|
||||||
|
|
@ -209,8 +220,11 @@
|
||||||
;; keep-sorted end
|
;; keep-sorted end
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package org-contrib)
|
(use-package org-contrib
|
||||||
|
:ensure t
|
||||||
|
)
|
||||||
(use-package org-contacts
|
(use-package org-contacts
|
||||||
|
:ensure t
|
||||||
:after org-contrib)
|
:after org-contrib)
|
||||||
|
|
||||||
(use-package deflate
|
(use-package deflate
|
||||||
|
|
@ -230,6 +244,7 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package age
|
(use-package age
|
||||||
|
:ensure t
|
||||||
:custom
|
:custom
|
||||||
(age-default-identity "~/.age/key")
|
(age-default-identity "~/.age/key")
|
||||||
(age-default-recipient "~/.age/key.pub")
|
(age-default-recipient "~/.age/key.pub")
|
||||||
|
|
@ -238,6 +253,7 @@
|
||||||
|
|
||||||
;; EPUB reader
|
;; EPUB reader
|
||||||
(use-package nov
|
(use-package nov
|
||||||
|
:ensure t
|
||||||
:init
|
:init
|
||||||
(setq auto-mode-alist
|
(setq auto-mode-alist
|
||||||
(map-merge 'list
|
(map-merge 'list
|
||||||
|
|
@ -246,13 +262,16 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package company
|
(use-package company
|
||||||
|
:ensure t
|
||||||
:config (global-company-mode)
|
:config (global-company-mode)
|
||||||
:diminish company-mode)
|
:diminish company-mode)
|
||||||
|
|
||||||
(use-package apt-mode
|
(use-package apt-mode
|
||||||
|
:ensure t
|
||||||
:disabled t)
|
:disabled t)
|
||||||
|
|
||||||
(use-package docker
|
(use-package docker
|
||||||
|
:ensure t
|
||||||
:bind ("C-c d" . docker)
|
:bind ("C-c d" . docker)
|
||||||
:custom
|
:custom
|
||||||
(docker-command "podman")
|
(docker-command "podman")
|
||||||
|
|
@ -261,10 +280,15 @@
|
||||||
(:name "Name" :width 50 :template "{{ json .Name }}" :sort nil :format nil)
|
(:name "Name" :width 50 :template "{{ json .Name }}" :sort nil :format nil)
|
||||||
(:name "Driver" :width 10 :template "{{ json .Driver }}" :sort nil :format nil))))
|
(:name "Driver" :width 10 :template "{{ json .Driver }}" :sort nil :format nil))))
|
||||||
|
|
||||||
(use-package iedit)
|
(use-package iedit
|
||||||
(use-package wgrep)
|
:ensure t
|
||||||
|
)
|
||||||
|
(use-package wgrep
|
||||||
|
:ensure t
|
||||||
|
)
|
||||||
|
|
||||||
(use-package apheleia
|
(use-package apheleia
|
||||||
|
:ensure t
|
||||||
:config
|
:config
|
||||||
(apheleia-global-mode)
|
(apheleia-global-mode)
|
||||||
(setf (alist-get 'ruff-isort apheleia-formatters)
|
(setf (alist-get 'ruff-isort apheleia-formatters)
|
||||||
|
|
@ -294,10 +318,14 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
;; Note: debugging Python in a virtualenv requires debugpy to be installed inside the venv
|
;; Note: debugging Python in a virtualenv requires debugpy to be installed inside the venv
|
||||||
(use-package dape)
|
(use-package dape
|
||||||
|
:ensure t
|
||||||
|
)
|
||||||
|
|
||||||
;; Requires poetry to be installed
|
;; Requires poetry to be installed
|
||||||
(use-package poetry)
|
(use-package poetry
|
||||||
|
:ensure t
|
||||||
|
)
|
||||||
|
|
||||||
(defun load-python-env ()
|
(defun load-python-env ()
|
||||||
"Set up the Python IDE in the current project."
|
"Set up the Python IDE in the current project."
|
||||||
|
|
@ -308,6 +336,7 @@
|
||||||
(eglot-ensure))))
|
(eglot-ensure))))
|
||||||
|
|
||||||
(use-package python
|
(use-package python
|
||||||
|
:ensure t
|
||||||
:bind (:map python-ts-mode-map
|
:bind (:map python-ts-mode-map
|
||||||
("C-c C-p" . nil)
|
("C-c C-p" . nil)
|
||||||
("C-c C-l" . nil)
|
("C-c C-l" . nil)
|
||||||
|
|
@ -321,6 +350,7 @@
|
||||||
|
|
||||||
;; Jupyter notebook integration
|
;; Jupyter notebook integration
|
||||||
(use-package ein
|
(use-package ein
|
||||||
|
:ensure t
|
||||||
:bind (("C-z j" . ein:run)
|
:bind (("C-z j" . ein:run)
|
||||||
:map ein:notebook-mode-map
|
:map ein:notebook-mode-map
|
||||||
("C-c C-x k" . ein:notebook-switch-kernel))
|
("C-c C-x k" . ein:notebook-switch-kernel))
|
||||||
|
|
@ -334,10 +364,12 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package direnv
|
(use-package direnv
|
||||||
|
:ensure t
|
||||||
:config
|
:config
|
||||||
(direnv-mode))
|
(direnv-mode))
|
||||||
|
|
||||||
(use-package rustic
|
(use-package rustic
|
||||||
|
:ensure t
|
||||||
:custom
|
:custom
|
||||||
(rustic-lsp-client 'eglot)
|
(rustic-lsp-client 'eglot)
|
||||||
)
|
)
|
||||||
|
|
@ -378,6 +410,7 @@
|
||||||
:models (enrich-ollama-models (list-ollama-models) gptel--local-models)))
|
:models (enrich-ollama-models (list-ollama-models) gptel--local-models)))
|
||||||
|
|
||||||
(use-package gptel
|
(use-package gptel
|
||||||
|
:ensure t
|
||||||
:hook
|
:hook
|
||||||
;; keep-sorted start
|
;; keep-sorted start
|
||||||
(gptel-mode . gptel-highlight-mode)
|
(gptel-mode . gptel-highlight-mode)
|
||||||
|
|
@ -402,9 +435,12 @@
|
||||||
(generate-ollama-declaration)
|
(generate-ollama-declaration)
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package power-mode)
|
(use-package power-mode
|
||||||
|
:ensure t
|
||||||
|
)
|
||||||
|
|
||||||
(use-package emms
|
(use-package emms
|
||||||
|
:ensure t
|
||||||
:config
|
:config
|
||||||
(require 'emms-setup)
|
(require 'emms-setup)
|
||||||
(emms-all)
|
(emms-all)
|
||||||
|
|
@ -425,4 +461,5 @@
|
||||||
(qrencode--encode-to-buffer url)))))
|
(qrencode--encode-to-buffer url)))))
|
||||||
|
|
||||||
(use-package qrencode
|
(use-package qrencode
|
||||||
|
:ensure t
|
||||||
:bind (("C-z q" . my-qr-selection)))
|
:bind (("C-z q" . my-qr-selection)))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue