docs: add Contract sections + tag tests to contract items (Tier 2 — 10 files)
Some checks failed
Deploy (Gitea) / deploy (push) Failing after 2s
Some checks failed
Deploy (Gitea) / deploy (push) Failing after 2s
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user