Getting started
This page installs just-say-so and runs one session. You will see a file check, the rules in the agent’s context, a reply report, and a restate. It takes about fifteen minutes.
Before you start
Section titled “Before you start”You need three things.
node18 or newer. The plugin has no npm dependencies.valeon your PATH:brew install vale, or another installer from vale.sh. A different tool, an STE linter, also installs a binary namedvale. This plugin needs errata-ai vale, the one brew installs. If you have both, put errata-ai’s first on PATH.- Claude Code 2.1.85 or newer.
Without vale, the rules still inject and the checks skip. Session start says so once.
1. Install the plugin
Section titled “1. Install the plugin”In Claude Code:
/plugin marketplace add ifandelse/just-say-so/plugin install just-say-so@just-say-so2. Set up a project
Section titled “2. Set up a project”Open a project and run:
/just-say-so:initThe skill asks which targets you want checked beyond the defaults, then runs the setup. It writes a .vale.ini that loads the JustSaySo rules when the project has none, runs vale sync, writes .just-say-so.json for any target you named, wires a commit hook for the repo’s hook tooling, and ends with the doctor report. Add --dry-run to see the steps without writing anything.
3. Check the setup
Section titled “3. Check the setup”/just-say-so:doctorA clean report ends with No warnings. and shows, per target, which rules are on:
Targets (the plugin's reading of the Vale config: rules on per style, then how many of those sit at each level) reply reply.reply JustSaySo 6 of 6 rules on · levels: 5 error, 1 suggestion sections: [*] [*.reply] files .md doc.md JustSaySo 6 of 6 rules on · levels: 5 error, 1 suggestion sections: [*]Each warning names its fix. Read them before going on.
4. Start a session and watch the rules arrive
Section titled “4. Start a session and watch the rules arrive”Start a new session in the project. The rules text goes out at every context start. You do not see it, but the agent does. To see it yourself, run:
/just-say-so:rulesThat loads the full text into the conversation, as the manifest renders it. The hooks inject the same text with one difference: a bullet backed by Vale rules your project turned off is left out. On a fresh setup nothing is turned off, so the two match. It opens with “Lead with the answer, decision, result, or required action.”
5. Write a file and read the check
Section titled “5. Write a file and read the check”Ask the agent to write a short Markdown file. Ask for something a buzzword fits, a rollout note say. When the write lands, the agent gets a report of every alert on the lines it added, and in the default warn mode it is told to fix the errors before finishing. You see the fixed file. To see the report itself, ask the agent what the check said.
6. Reject a reply
Section titled “6. Reject a reply”Ask a question, and when the reply is bad in a way you noticed, reject it:
/just-say-so:restate #undefined-term what is a "pin"? the term was never definedThe model rewrites the reply under the rules. The plugin saves the rejected reply as the model wrote it, your reason, the tag, and the rewrite, as one line in a file under your state directory. Nothing leaves your machine. A tag is any #word you type.
7. Read the summary
Section titled “7. Read the summary”/just-say-so:summaryIt prints facts with their counts: turns, rejections per 100 turns, the rules that fired, the tags and what each points at. After one session most lines read zero. The numbers mean something after a week.
What you have now
Section titled “What you have now”The agent writes under your rules, the files it writes are checked, and the misses you notice are on record. From here:
- From the ground up continues this path step by step, through blocking, publishing, packages, and your own bullets.
- Commands is one page per skill.
- Configuration is every setting.