# @shadowclone/profile

Holds the learned rule model: rule types, evidence helpers, rejection records, and the Claude memory scanner. Environment and learning use it. The skills environment in `environment` stores the rules.

<!-- package-facts:start -->

(generated by `bun run guides`; do not edit by hand)

- Package name: `@shadowclone/profile`
- Workspace dependencies: `@shadowclone/core`, `@shadowclone/sessions`
- External dependencies: `zod`
- Export subpaths: `.`

<!-- package-facts:end -->

## Owns

- `src/profile/`: the rule types, evidence identifiers and statistics, rule keys and paths, rejection parsing and rendering, `renderMirror`, and `renderAgent`.
- `src/claudeMemory/`: `scanClaudeMemory` and `claudeMemoryDirectory`.

## Rules

- This package stores nothing. `storeLearningRules` and `learningSnapshot` in `environment` own the store.
- A memory scan reads through `resolveRedacted`. It reads at most 256 files and 2 MiB.
- Rejection records use one JSON line for each rule.

## Tests

Run `bun test` in this folder, or `bun test packages/profile` from the root. The tests use synthetic memory folders.

Update this file in the same commit when you change the package purpose, public exports, dependencies, or a rule above.
