README.md

nasin pali (the way of work)

REUSE status Go Report Card

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 s tells 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 s accepts title and description arguments and tells the model to, if necessary, look around at additional relevant files before adding some tasks with np 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
    )"