@@ -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
@@ -0,0 +1,55 @@
+# nasin pali (the way of work)
+
+[](https://api.reuse.software/info/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
+)"
+```