@@ -12,22 +12,23 @@ _nasin pali_, installed as `np`, is a CLI tool that encourages LLMs in agentic
coding tools (specifically coding, I don't think we want to support generic
workflows) to do a bit more planning before going off and making a bunch of
changes. It is _both_ meant for humans and LLMs; there are subcommands that
-produce instructions for the model and subcommands that let the human inspect
-what the model's doing.
+produce output for the model and subcommands for the human to inspect the
+model's progress.
The todo systems built into agentic coding tools are often just that: todo and
-nothing else. They also, if I understand correctly, have the LLM reproduce the
-entire task list with each `todo_write` invocation, which just seems crazy to
-me. What if it decides it doesn't want to do a task because it's "too hard" and
-it just omits that task next time it writes the list? _nasin pali_ does things a
-little differently.
+nothing else. I think (backed by no evidence) that they do better when they can
+also set a goal. If I understand the coding tools correctly, they also have the
+LLM reproduce the entire task list with each `todo_write` invocation, which just
+seems wasteful and careless to me. What if it decides it doesn't want to do a
+task because it's "too hard" and it just omits that task next time it writes the
+list? _nasin pali_ helps force the model into a different flow.
- Start a new session with `np s` . It adds details to the global sqlite
database and produces output to guide the LLM through its next steps. Instead
- of telling the model up-front about everything it can do with _nasin pali_,
- all the sub-commands and flags, we only reveal the sub-commands and flags it
- might actually need once it needs them. It shouldn't ever use the interactive
- commands, so we don't tell them model about them.
+ of telling the model up-front about everything it can do with _nasin pali_
+ though AGENTS.md or tool definitions or something, we only reveal the
+ sub-commands and flags it might actually need once it needs them. It shouldn't
+ ever use the interactive commands, so we never tell them model about them.
- There can be one active session per working directory and the previous
session must be archived before starting a new one. This is so the model
@@ -41,15 +42,24 @@ little differently.
necessary, look around at additional relevant files before adding some tasks
with `np t a`
-When multi-line inputs are required, use
+## The name
-```text
-np goal set "Sentence case title" "$(cat <<'EOF'
-Multi-line
+Is [toki pona](https://tokipona.org/). [_nasin_](https://nimi.li/nasin) occupies
+the semantic space of "method, doctrine, tradition; path, road, way" while
+[_pali_](https://nimi.li/pali) covers "work, activity; create, build, design;
+put effort toward, take action on". Together and in this context, _nasin pali_
+could be translated as "the way of work", "the doctrine of design", etc.
-- Body
-- Here
+## Random thoughts
-EOF
-)"
-```
+- When providing multiple lines for the body, use
+
+ ```bash
+ np goal set "Sentence case title" "$(cat <<'EOF'
+ Multi-line
+ - Body
+ - Here
+
+ EOF
+ )"
+ ```