@introspection-ai/operator 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: build-review
3
+ description: Review a drafted Introspection agent (Recipe) with fresh-context reviewers, fix what they find, and package it as a pull request ready for the owner's review. Use after build-draft, when the cases have run locally. The last step of build; deploy follows.
4
+ ---
5
+
6
+ # Build: review
7
+
8
+ Check the draft as someone who wasn't in the conversation would, fix what they find, and hand the owner a pull request they can review without having followed the work.
9
+
10
+ ## Before you start
11
+
12
+ - Check the stage first: no approved cases in `evals/cases/` means build-brainstorm; approved cases but no case results recorded means build-draft.
13
+
14
+ - You need the `introspection` CLI (`npm i -g @introspection-ai/cli`). No login unless the repository is the Introspection hosted one.
15
+ - The `pr/<name>` branch has the cases (`evals/cases/`), the design (`docs/DESIGN.md`, Parts A and B) and the Recipe, and build-draft's last commit records the case results. If any of these is missing, go back to the step that makes it.
16
+
17
+ ## Steps
18
+
19
+ 1. **Run the checks again from a clean state:** `introspection check`, then `introspection eval run`. Use these results, not build-draft's, in the review.
20
+ 2. **Review with fresh context.** Give each reviewer only the branch, never the conversation, and one question each. Use separate subagents where they're available; otherwise run each question as its own confined, read-only Pi call, started in the agent's repository:
21
+
22
+ ```bash
23
+ cd <repository> && pi --print --no-session --no-context-files --no-skills \
24
+ --no-extensions --no-mcp --tools read,grep,find,ls \
25
+ "<the question>. Review only the files in this folder."
26
+ ```
27
+
28
+ A reviewer needs no shell, no edits and nothing outside the repository; an unconfined call can wander into the owner's other folders. "Reviewers unavailable" is never a reason to skip review.
29
+ [The review questions](references/review-questions.md) cover the design against the cases, the Recipe against the design, the checks against the cases, and what a stranger would misread.
30
+ 3. **Fix what blocks,** and run the checks again. Record what wasn't fixed and why. A finding that needs the owner's decision (a case that seems wrong, a default they should see) goes in the pull request's summary as a question. Don't change an approved case yourself.
31
+ 4. **Check nothing private is committed:** no client documents (case inputs are referenced by hash), no credentials, no tokens. Remove anything found from the branch history, not just the last commit.
32
+ 5. **Package the pull request** with [the description template](references/pr-description.md), then push `pr/<name>`:
33
+ - **GitHub, whenever the repository is there:** open or update a pull request for the branch (`gh pr create`, or `gh api` with the access token when running as the Operator).
34
+ - **The Introspection hosted repository otherwise:** push the branch; its description is the review package, which you show the owner in chat.
35
+ 6. **Hand over to deploy.** The pull request is ready for review: deploy creates its runtime version, connects the agent's data and tests a real conversation before it's ready to land.
36
+
37
+ ## Guardrails
38
+
39
+ - **Bounded:** at most the four review questions, each pass with a time limit (about five minutes), and at most two rounds of fix-then-re-review. Anything still open after that goes into the pull request description as an open item, not another loop.
40
+ - **A fix re-runs only what it touches, once.** After a fix, re-run `introspection check` and the cases the fix affects, one run each. Review isn't a second draft: don't tune the agent's instructions against one output and run it again, since that fits the agent to a single run. If a case still fails, record it in Part B and the pull request as an open item.
41
+ - **Reviewers only report.** Findings come back as text; only this step edits the repository, so one reviewer can't undo another's work.
42
+ - **No real data, credentials or pushes during review.** Reviewers read the repository; they don't run the agent against real connections or push anything.
43
+ - **Never widen access to finish a review.** If a pass can't reach something (a permission prompt, a missing tool), record that and continue; never ask the owner for broader access or use paths outside the repository.
44
+ - **The repository holds only what the Recipe needs.** Working files a run left behind (scratch scripts, test outputs, copies of inputs) are a blocking finding: remove them, and keep run outputs under a gitignored folder, since anything in the package ships with the agent.
45
+
46
+ ## Done when
47
+
48
+ - No working files are left in the repository outside what the Recipe needs.
49
+ - `introspection check` passes, the Recipe boots (`introspection local -p "hello"`), and every case passes or has a written reason in Part B.
50
+ - No reviewer finding is left blocking.
51
+ - The pull request exists (or the hosted branch is pushed) with a description a business owner can read.
@@ -0,0 +1,27 @@
1
+ # Pull request description
2
+
3
+ Written for the owner first: plain language, no tool or file names in the first two sections.
4
+
5
+ ```markdown
6
+ ## What this agent does
7
+ <Part A's job and who uses it, in two or three sentences>
8
+
9
+ ## How it did on your cases
10
+ | Case | Situation | Result |
11
+ | --- | --- | --- |
12
+ | C1 | ... | passes |
13
+ | C4 | ... | fails: needs your email connected (deploy will do this) |
14
+
15
+ ## What we assumed
16
+ <each default from "Assumed defaults", and how to change it>
17
+
18
+ ## Questions for you
19
+ <anything the review found that needs your decision; "None" if nothing>
20
+
21
+ ## For reviewers
22
+ - Design: `docs/DESIGN.md` (Part B lists each capability and the cases that need it)
23
+ - Cases: `evals/cases/`; checks: `evals/`
24
+ - Last run: <command and result summary>
25
+ - Review: <the fresh-context findings, and what was fixed or left with a reason>
26
+ - Tested against fakes only so far; deploy connects real data and tests a real conversation.
27
+ ```
@@ -0,0 +1,10 @@
1
+ # Review questions
2
+
3
+ One reviewer per question, each with fresh context: the branch only, never the conversation. A finding names the file and line, says what is wrong, and says whether it blocks.
4
+
5
+ 1. **Design against cases.** Does every behaviour and capability in Part B cite a case that needs it? Is anything built that no case needs? Is every "It will never" and "It leaves to you" item covered by a case?
6
+ 2. **Recipe against design.** Does the Recipe do what Part B says, and nothing it doesn't? Are tools and permissions no wider than the cases need? Does anything fetch instructions or packages while the agent runs? Does the Recipe boot, and does every declared tool exist in the installed runtime? Does it produce a usable result on the owner's real sample when run from a folder outside the repository? Does every exact value the owner gave (author, side, model) appear in the Recipe? Is anything specific to a test input in the instructions? Is anything in the repository that the Recipe doesn't need, such as scripts or outputs a run left behind?
7
+ 3. **Checks against cases.** Does each case marked `code` have a check that would fail on the case's bad result? Are any checks testing the implementation instead of the owner's outcome? Does any check pass trivially?
8
+ 4. **The stranger's read.** Reading only Part A and the pull request description, what would a business owner misunderstand about what the agent does, what it needs from them, or what it won't do?
9
+
10
+ A finding blocks when the agent would do something the owner didn't approve, a case could pass while the owner's bad result happens, or private data is committed. Everything else is advice.