Capture with evidence
Separate what happened, the suspected cause, and the proposed improvement. Each lesson links to its occurrence.
Your agent records and proposes. You decide what stays. SIL tracks deadlines, changes, and evidence.
CLI, skill, and templates for projects that work with coding agents. No server, account, or API calls.
Separate what happened, the suspected cause, and the proposed improvement. Each lesson links to its occurrence.
Adopt, try, defer until a date, or reject. Frequency is adjustable and every decision stays in the history.
Time and changes flag potentially outdated rules. A person decides whether to keep, revise, or retire them.
The agent can capture occurrences during authorized work. Making a rule permanent requires an explicit decision.
The framework does not train models or monitor conversations on its own. The skill guides the agent to check context at the start, capture failures during work, and check pending items before finishing.
Python 3.10+ and Git are enough. The demo uses a temporary project with clearly labeled fictional records and removes it when finished.
git clone https://github.com/inematds/sil-loop-r.git cd sil-loop-r python3 scripts/demo.py python3 -m unittest discover -s tests -v
The demo walks through capture, fictional approval, review, and retirement. It does not modify your other projects.
Replace the path with your chosen directory. The command only creates local .sil storage; it does not change instructions or install hooks.
python3 sil.py --project /caminho/do/projeto init python3 sil.py --project /caminho/do/projeto occurrence \ --title "Test accessed the wrong service" \ --evidence "Local log: the port was already in use" python3 sil.py --project /caminho/do/projeto lesson \ --occurrence O0001 \ --proposal "Abort when the port is in use" \ --scope "Test server"
Use the ID returned by the previous command. O0001 is only the first record in an empty project.
python3 sil.py --project /caminho/do/projeto status python3 sil.py --project /caminho/do/projeto request
The agent presents the proposals. Run the next command only after explicit approval for the specified lesson.
python3 sil.py --project /caminho/do/projeto decide L0001 adopt \ --approved-by "Approver" \ --reason "Approved after reviewing the evidence"
You can also use reject, defer, and trial. Deferrals and trials require a future date; trials require a verifiable criterion. See decide --help.
python3 sil.py --project /caminho/do/projeto context python3 sil.py --project /caminho/do/projeto check python3 sil.py --project /caminho/do/projeto review R0001 keep \ --approved-by "Approver" \ --reason "Protection still needed; evidence reviewed"
check returns 0 when no overdue items remain, 1 when a decision or review is due, and 2 on error. Exit code 0 does not certify that rules are true.
The first threshold reached calls for a batch. The simulation below assumes new proposals with no previous reminder. It does not save data or change configuration.
python3 sil.py --project /caminho/do/projeto config \ --approval-days 7 \ --approval-releases 2 \ --approval-batch 5 \ --review-days 30 \ --uncited-releases 5
A reminder does not approve or close pending items. Deadlines become due on the specified day. Frequencies are evaluated when the CLI runs; the kit does not install scheduled tasks.
Missing citations are a reason to investigate. Rules that protect against rare events may still be needed.
Periodic reviews ask whether the problem and scope still exist. Citing a rule does not postpone this review.
Use --watch when proposing a lesson. Changed content or a missing file flags the rule for reassessment.
Keeping, revising, or retiring requires a reason. History is preserved, and changes invalidate the previous verification when applicable.
A new session does not query the database on its own. Binding rules go into a block in AGENTS.md, and check flags it when the block falls behind.
Would breaking the rule in a session that never consults SIL cause real harm? If yes, mark it with enforce --binding yes.
Record whether the rule is only text, a checklist, a test, a probe, a hook or a server rule, and how it can be bypassed.
promote shows the diff; promote --write writes between markers and keeps the rest. A missing, stale or corrupted block makes check return 1.
python3 sil.py --project /path/to/project enforce R0001 --binding yes --rung hook \ --leak "git push --no-verify" --approved-by "Owner" --reason "A wrong deploy breaks the app" python3 sil.py --project /path/to/project promote --write
The skill ships with the code and can be read directly or optionally installed in your chosen assistant. This project does not install it for you.
Read the skill (in Portuguese)The agent captures facts and prepares decisions. You control permanent rules. Changes to instructions, hooks, and code require authorized scope.
The CLI validates states and references, calculates deadlines, and compares associated files. Reviewing meaning depends on a person or an agent working with evidence.
The verify command stores results from tests already run. It does not execute commands or certify reports. The approver name is declared, not authenticated.
Data is stored in .sil/state.sqlite3. Ignore this folder in the consuming project’s Git repository and review exports before sharing. There is no cloud sync, admin interface, or notification delivery.
Read the architecture and decisions (in Portuguese) · Full documentation