docs: add Contract sections + tag tests to contract items (Tier 2 — 10 files)
Some checks failed
Deploy (Gitea) / deploy (push) Failing after 2s

This commit is contained in:
2026-05-05 12:19:25 -04:00
parent ea1150f38e
commit dcb5a1f1a6
20 changed files with 168 additions and 52 deletions

View File

@@ -25,6 +25,14 @@ After loading, the engine exports the skill's public symbols into the ~passepart
This is how the "thin org, fat skills" principle works in practice: the org provides the loading infrastructure; the skills provide all the intelligence.
** Contract
1. (lisp-syntax-validate code-string): returns T if the Lisp code is
structurally valid, nil if reader errors are detected.
2. (skill-topological-sort dir): reads org files in a directory, parses
~#+DEPENDS_ON:~ declarations, returns files sorted such that
dependencies come before dependents.
* Implementation
** Package Context
@@ -425,6 +433,7 @@ Verifies that the topological sorter correctly orders skills by their ~#+DEPENDS
(in-suite boot-suite)
(test test-topological-sort-basic
"Contract 2: dependency ordering puts dependencies before dependents."
(let ((tmp-dir "/tmp/passepartout-boot-test/"))
(uiop:ensure-all-directories-exist (list tmp-dir))
(with-open-file (out (merge-pathnames "org-skill-a.org" tmp-dir) :direction :output :if-exists :supersede)
@@ -439,10 +448,10 @@ Verifies that the topological sorter correctly orders skills by their ~#+DEPENDS
(uiop:delete-directory-tree (uiop:ensure-directory-pathname tmp-dir) :validate t))))
(test test-lisp-syntax-validate-valid
"Valid Lisp code should pass syntax validation."
"Contract 1: valid Lisp code passes syntax validation."
(is (eq t (lisp-syntax-validate "(+ 1 2)"))))
(test test-lisp-syntax-validate-invalid
"Unbalanced Lisp code should fail syntax validation."
"Contract 1: unbalanced Lisp code fails syntax validation."
(is (null (lisp-syntax-validate "(+ 1 2"))))
#+end_src