# rosetta-knowledge

Cited answers from the rosetta-deploy library of Salesforce Data 360 and
Salesforce Well-Architected Framework (WAF) knowledge. Install it from
the `rosetta-deploy` marketplace (see the repo's README) and ask:

```text
/rosetta-knowledge:ask How should we resolve identities across several CRM orgs?
```

The `ask` skill also triggers on its own when you ask a Data 360 or
Well-Architected question. Every WAF pattern in the library is a draft
and every WAF ADR is proposed, so the skill marks WAF answers as
advisory, not SME-reviewed. When an answer is wrong or a file falls
short, `/rosetta-knowledge:give-feedback` drafts the report (below).

## What it does

Two skills. The router skill, `ask`, follows the library's answer
contract (SM-RDEP-001 C-10):

1. Reads the routing index first (`indexes/routing.md`, one row per
   pattern and ADR), then opens at most five files. It follows a
   pattern's links into the business intents, engine functions,
   platform objects, semantic entities and vocabulary terms (`BI/`,
   `EF/`, `PO/`, `SE/`, `VT/`) when the pattern does not hold the
   detail. It finds a cited source's file or public URL in the source
   catalog (`sources/README.md`), and an ADR's rejected alternatives in
   `anti-patterns/`. The indexes and the catalog
   (`indexes/catalog.json`) don't count toward the five.
2. Cites the path and id for every claim, for example
   `CP/cp-g-006.md` (`cp-g-006`).
3. Says "not covered by the library" when the library has no answer.
4. Gives outside research only when you ask for it, in a separate
   section labeled as outside the library.
5. Declines out-of-scope requests (customer deliverables, deal pricing,
   customer data, edits to the library, building an engagement twin,
   Rosetta or live-org work) and says where to go instead.

It also says once per conversation whether a Data 360, Cuneiform or
Elements MCP server is connected. It never uses one.

The second skill, `give-feedback`, drafts a report when an answer or a
library file is wrong, missing or conflicting, or when a skill broke
its own rules:

```text
/rosetta-knowledge:give-feedback The answer did not say which match rules to start with.
```

It also triggers when you tell Claude an answer is wrong and ask to
report it. The report:

1. Names every library file the answer cited, opened or named, with
   the id and status from each file's front matter, and how the answer
   used it. A claim resting on a file the answer never opened is
   flagged.
2. Gives the release (`release-manifest.json`'s `source` line) and the
   plugin version.
3. Says what is wrong or missing in your words, quotes the passage,
   and leaves out customer names, customer data and credentials.
4. Has the same headings as the matching issue template in the repo's
   `.github/ISSUE_TEMPLATE/`, so it pastes into a new issue unchanged.

It saves the report as one file in your own folder:
`contributions/YYYY-MM-DD-<kind>-<topic>.md` in a clone, fork or
engagement repository of the library, otherwise
`rosetta-feedback/YYYY-MM-DD-<kind>-<topic>.md`. Then it tells you how
to file it as an issue or a contribution. **It sends nothing.** It runs
`gh issue create` only if you ask it to file the report and say yes to
the text, and Claude Code asks for permission first.

## What it does not do

- It does not connect to Rosetta, and it has no MCP server. Nothing
  reaches the network unless you ask `give-feedback` to file a report.
- `ask` writes no files. `give-feedback` writes only the report, and
  never edits a library file.
- It does not answer from general knowledge unless you ask for outside
  research.

## Where the library comes from

The plugin folder holds symlinks to the repo's `CP/`, `ADR/`, `BI/`,
`EF/`, `PO/`, `SE/`, `VT/`, `sources/`, `anti-patterns/`, `indexes/`,
`docs/` and `release-manifest.json`. When
Claude Code installs the plugin from the marketplace, it copies their
contents into the plugin cache, so the installed plugin carries the
release it was installed from. Ask "which library version are you
using?" to see it.

To read a local clone instead, set `ROSETTA_DEPLOY_ROOT` to the clone.

## Files

| Path | Holds |
|---|---|
| `.claude-plugin/plugin.json` | The plugin manifest |
| `skills/ask/SKILL.md` | The router skill and the answer contract |
| `skills/ask/references/citation.md` | The citation form, with examples |
| `skills/ask/references/personas.md` | Answer shapes for sellers, implementers and practitioners |
| `skills/ask/references/library-map.md` | The library's folders and domains, how they link, front matter and statuses, the routing index and catalog |
| `skills/give-feedback/SKILL.md` | The feedback skill: which files to list, where the report goes, and the no-send rule |
| `skills/give-feedback/references/feedback-form.md` | The four report kinds, the report layout and the file name |
| `CP`, `ADR`, `BI`, `EF`, `PO`, `SE`, `VT`, `sources`, `anti-patterns`, `indexes`, `docs`, `release-manifest.json` | Symlinks to the library |
| `CHANGES.md` | Release notes |
