nasin pali (the way of work)
This README is aspirational! None of the code exists yet, I'm just getting my ideas down.
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 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. 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 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 doesn't have to provide a session ID or something for each invocation.
-
np stells the model about the goal and task sub-commands and their flags and to begin the session by turning the user's request, bug report, issue contents, spec, etc. into a concise overarching goal with a thorough description -
np g saccepts title and description arguments and tells the model to, if necessary, look around at additional relevant files before adding some tasks withnp t a
The name
Is toki pona. nasin occupies the semantic space of "method, doctrine, tradition; path, road, way" while 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.
Random thoughts
-
When providing multiple lines for the body, use
np goal set "Sentence case title" "$(cat <<'EOF' Multi-line - Body - Here EOF )"