Quick start • How it works • Commands • Safety • Validation • Security • 한국어
In a closed network or internal development environment, an external AI assistant cannot access the repository directly. Developers must prepare the relevant code and project context separately.
siloBrief is a local CLI that turns approved Python project context into a Markdown brief. You choose the information and source excerpts before writing the file. The result is input for another tool, not a generated code change.
- License: Apache License 2.0
- Platforms: Windows and Ubuntu
- Python: 3.10 and newer
- Runtime dependencies: none
- Network access: none
Quick start
Install
Install the stable package from PyPI and verify the command:
python -m pip install silobrief
sb --version
Expected output:
siloBrief 1.0.2
Practice project
Create a practice project:
sb example ./silobrief-practice
cd silobrief-practice
The generated README.md guides you through one modification, one addition, and one removal task.
Start the first task from the same directory:
sb setup .
sb init
sb log parcel_practice/labels.py --comment "Callers pass uppercase positionally."
sb search "Append an optional separator to format_label. Preserve positional callers and apply uppercase last."
sb brief "Append an optional separator to format_label. Preserve positional callers and apply uppercase last. Return a readable diff and focused unittests." --out .silobrief/exports/task-01-modify.md
setup prepares local state, and init indexes the Python files. log records approved project
context. search shows ranked candidates, and brief starts the review that produces the Markdown
file.
How it works
Set project boundaries
Register paths that siloBrief must skip before building the index:
sb ignore private_adapter --as "External delivery adapter" --alias delivery-boundary
sb init
If a boundary is no longer needed, remove it by its stored path or alias and rebuild the index:
sb unignore delivery-boundary
sb init
unignore changes the local configuration without opening the target. It marks the current index as
stale, so sb brief remains blocked until sb init finishes. Files under the removed boundary may
then appear as review candidates.
Add project context
Use sb log for a project fact that the code alone does not explain:
sb log src/parcel_sync/service.py --comment "HTTP 503 responses may be retried."
Enter only information approved for external disclosure. Do not put private source code, secrets, or real names from excluded areas in a project note.
Review and write
Start a review with a concrete task:
sb brief "Update retry_request to retry HTTP 503 but not 500. Return a unified diff and tests." --out .silobrief/exports/retry-with-note.md
During brief:
- Confirm the task and choose the relevant function or class. If the suggested candidates miss the target, enter an exact indexed Python file path and select its functions or classes.
- Review one-hop related context and type an
rNvalue only for an item you want to add. Blank input approves none. - Review each proposed project field.
- Choose whether to include the displayed source code. The default answer is no.
- If the source reveals an excluded boundary identifier, type
EXPOSEafter reviewing it. - Review the complete brief.
- Type
WRITEto create the file.
The result is one Markdown brief containing the task, approved project context, and any source code you select and approve. Selected source is included verbatim. If you decline every source selection, the file contains only the task and approved project context. Open the file before moving it to a different environment.
Choose interface and brief languages
The terminal interface and generated brief default to English. Settings are stored per project and can be changed together or separately:
sb language --cli ko
sb language --brief en
sb language
The CLI setting changes fixed terminal guidance. The brief setting changes generated headings and instructions. Task text, project notes, source code, paths, symbols, and identifiers remain as entered or selected. Language settings do not affect indexing, candidate ranking, IDs, ordering, or source digests.
Write a useful task
Write PROMPT as a concrete task, not a list of keywords. Include the required deliverables and
acceptance criteria so the receiving assistant can tell when the work is complete.
Commands
| Command | What it does |
|---|---|
sb setup [PATH] |
Adds or checks local siloBrief state in an existing project. |
sb example PATH |
Creates a synthetic project with three guided maintenance tasks. |
sb ignore PATH --as TEXT [--alias NAME] |
Excludes a path and records a public label for that boundary. |
sb unignore SELECTOR |
Removes one registered boundary by its exact stored path or alias. |
sb init |
Builds the local search list from allowed Python files. |
sb log PATH --comment TEXT |
Saves an approved project note. |
sb search "PROMPT" |
Lists a bounded set of code candidates and the request terms that matched each one. |
sb language [--cli {en,ko}] [--brief {en,ko}] |
Sets terminal and generated-brief languages independently. |
sb brief "PROMPT" --out FILE |
Reviews context and writes one Markdown brief. |
sb chat "PROMPT" --out FILE |
Previous name for sb brief, kept for existing users. |
sb --version |
Prints the installed siloBrief version. |
Commands other than setup and example find the project root from the current directory. brief
requires an interactive terminal, a current index, and a new .md output path. Output inside the
project must be below .silobrief/exports/. Existing files are never overwritten.
When standard error is an interactive terminal, sb init shows one progress line for source
collection, analysis, index construction, source-change verification, and writing. Redirected output
and CI runs omit the progress display. The success message remains on standard output.
Safety and limitations
siloBrief does not read registered excluded paths or follow symbolic links while indexing. References to excluded code use the public label you approved. Before it writes a brief, you review the complete output and choose which source excerpts to include.
It does not detect secrets in allowed files or text entered with sb log. Approved source code may
contain comments, docstrings, strings, and internal identifiers. siloBrief is not a security scanner
or an export-approval system for a closed environment. Review every generated file under your
organization's disclosure rules before sharing it.
Validation status
The latest public release is v1.0.2 and follows the supported 1.x compatibility contract. In the
frozen retrieval benchmark, sb search reaches an expected symbol for 11 of 12 tasks, with a mean
reciprocal rank of 72.2%. Candidate search is lexical and advisory. When it misses, use the exact
indexed Python file path during review.
The deterministic end-to-end flow was verified on Django Ninja, pytest, and Jinja checkouts without changing their Python source files. The benchmark is small and does not establish effectiveness across other AI models or private projects.
- Installed wheel verification
- Manual model gate
- Claude gate result
- v0.7 retrieval result
- v0.8 related-context result
- Solo field-trial procedure
- v1.0.1 release verification
Exit codes
| Code | Meaning |
|---|---|
0 |
Success |
1 |
Unexpected internal error |
2 |
Input, path, or configuration error |
3 |
Indexing or Python parsing error |
4 |
Boundary validation, approval, or output was blocked |
Security
See the security policy for vulnerability reporting guidance.
Contributing
Contributions are welcome. Read the contributing guide before opening an issue or pull request. Everyone participating in the project must follow the code of conduct.
License
siloBrief is distributed under the Apache License 2.0. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file silobrief-1.0.2.tar.gz.
File metadata
- Download URL: silobrief-1.0.2.tar.gz
- Upload date:
- Size: 144.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25c8ae1cb1ac61efce73cb507cbdf80c0c591c9d1bacbb54a8b51ae936a4730c
|
|
| MD5 |
c40d6ba4756d3d5d5ad48805a80d3189
|
|
| BLAKE2b-256 |
ba17b07569545999f97211df3178c47172d7e8207a0c9f819d7bb7b9e3674431
|
Provenance
The following attestation bundles were made for silobrief-1.0.2.tar.gz:
Publisher:
publish-pypi.yml on d3vksy/silobrief
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
silobrief-1.0.2.tar.gz -
Subject digest:
25c8ae1cb1ac61efce73cb507cbdf80c0c591c9d1bacbb54a8b51ae936a4730c - Sigstore transparency entry: 2497274749
- Sigstore integration time:
-
Permalink:
d3vksy/silobrief@a5aaca47b6ac4a20b57c50ebd0f04b9ecc9a680d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/d3vksy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@a5aaca47b6ac4a20b57c50ebd0f04b9ecc9a680d -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file silobrief-1.0.2-py3-none-any.whl.
File metadata
- Download URL: silobrief-1.0.2-py3-none-any.whl
- Upload date:
- Size: 66.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b58ebac29afdd34e417c55e546ef1392f0d9746679cc93de471c51730380a367
|
|
| MD5 |
ee6787594b323b8a8b2c638c2b311631
|
|
| BLAKE2b-256 |
882ee40fbb0fe6d1b4b3a8b6d4dee13f709d90e36d8f9ebee998c80f4448f9c2
|
Provenance
The following attestation bundles were made for silobrief-1.0.2-py3-none-any.whl:
Publisher:
publish-pypi.yml on d3vksy/silobrief
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
silobrief-1.0.2-py3-none-any.whl -
Subject digest:
b58ebac29afdd34e417c55e546ef1392f0d9746679cc93de471c51730380a367 - Sigstore transparency entry: 2497274802
- Sigstore integration time:
-
Permalink:
d3vksy/silobrief@a5aaca47b6ac4a20b57c50ebd0f04b9ecc9a680d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/d3vksy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@a5aaca47b6ac4a20b57c50ebd0f04b9ecc9a680d -
Trigger Event:
workflow_dispatch
-
Statement type: