From c1aa627772af7ffa5c4dbff341794e7df9d179d8 Mon Sep 17 00:00:00 2001 From: Amolith Date: Wed, 22 Oct 2025 11:29:20 -0600 Subject: [PATCH] docs: snapshot WIP --- .rumdl.toml | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 .rumdl.toml create mode 100644 README.md diff --git a/.rumdl.toml b/.rumdl.toml new file mode 100644 index 0000000000000000000000000000000000000000..f8353c18a3370011b57e39506a342d6445641300 --- /dev/null +++ b/.rumdl.toml @@ -0,0 +1,52 @@ +# rumdl configuration file + +# Global configuration options +[global] +# List of rules to disable (uncomment and modify as needed) +# disable = ["MD013", "MD033"] + +# List of rules to enable exclusively (if provided, only these rules will run) +# enable = ["MD001", "MD003", "MD004"] + +# List of file/directory patterns to include for linting (if provided, only these will be linted) +# include = [ +# "docs/*.md", +# "src/**/*.md", +# "README.md" +# ] + +# List of file/directory patterns to exclude from linting +exclude = [ + # Common directories to exclude + ".git", + ".github", + "node_modules", + "vendor", + "dist", + "build", + + # Specific files or patterns + "CHANGELOG.md", + "LICENSE.md", +] + +# Respect .gitignore files when scanning directories (default: true) +respect_gitignore = true + +# Markdown flavor/dialect (uncomment to enable) +# Options: mkdocs, gfm, commonmark +flavor = "commonmark" + +[MD003] +style = "atx" # Heading style (atx, atx_closed, setext) + +[MD004] +style = "dash" # Unordered list style (asterisk, plus, dash, consistent) + +[MD007] +indent = 2 # Unordered list indentation + +[MD013] +line_length = 80 # Line length +code_blocks = false # Exclude code blocks from line length check +reflow = true diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9da9a26d014f38264b42f3330c6c7ae0af15c321 --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +# nasin pali (the way of work) + +[![REUSE status](https://api.reuse.software/badge/git.secluded.site/nasin-pali)](https://api.reuse.software/info/git.secluded.site/nasin-pali) +[![Go Report Card](https://goreportcard.com/badge/git.secluded.site/nasin-pali)](https://goreportcard.com/report/git.secluded.site/nasin-pali) + +**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 instructions for the model and subcommands that let the human inspect +what the model's doing. + +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. + +- 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. + + - 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` + +When multi-line inputs are required, use + +```text +np goal set "Sentence case title" "$(cat <<'EOF' +Multi-line + +- Body +- Here + +EOF +)" +```