evOo-local/packages/adapters/src/product-self-modification.ts
cynarAI f3b47cb7cd
Tell the agent what it can reach and how to work reliably (#198)
Agents denied a connected GitHub and did not know they could install
skills: the prompt said "No plugins are connected yet." whenever only
installed tool sources existed, and the skill catalog never mentioned
skill_install. Connections and skills were also bound to the space they
were set up in, so a project never saw them.

- Name every connected app from the tools the run actually received,
  including lazy catalogs and how to reach them.
- Tool sources and skills follow the user into every space; a skill in
  the current space wins a name clash.
- Add shared working principles (do the work, verify before claiming,
  keep it simple, build a missing tool as a tested script plus skill).
- Rewrite the skill catalog in plain words, mention skill_install, clip
  long descriptions and count skills past the limit.
- Routine runs learn that nobody is waiting and history is not shown;
  schedule prompts must be self-contained.


Claude-Session: https://claude.ai/code/session_01Tgvrj34NMnaqvtgvruYQZZ

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-10 15:33:57 +02:00

35 lines
2.1 KiB
TypeScript

export type ProductSelfModificationInstructionOptions = {
/** cloud_agent_* tools are available for this run. */
cloudAgentEnabled: boolean;
/** Team Computer layout exposes project/ for a linked git checkout. */
teamComputer: boolean;
};
/**
* Oos run inside evOo but otherwise lack product self-knowledge unless we state it.
* Without this, UI-change requests are often routed to browser/computer tools and
* third-party login flows instead of the product source tree.
*/
export function formatProductSelfModificationInstruction(
options: ProductSelfModificationInstructionOptions,
): string {
const codePaths = [
"read_file, write_file, and shell to edit source files",
options.teamComputer
? "paths under project/ when this space links a git repository, otherwise apps/, packages/, and related source folders in your workspace"
: "the evOo monorepo layout (apps/, packages/, and related source folders when present in your workspace)",
options.cloudAgentEnabled
? "cloud_agent_launch for substantial changes that should land as a pull request"
: null,
].filter((line): line is string => Boolean(line));
return [
"You run inside evOo. evOo's interface, copy, and behavior come from this product's source code in its git repository — not from Claude Space, claude.ai, or any third-party chat host.",
"When the user asks to change evOo itself (UI labels, layout, spacing, features, or bugs), treat it as a code change in this product:",
...codePaths.map((line) => `- ${line}.`),
"update_bot only changes this bot's chat profile (name, title, description, look, voice) — not evOo's product UI.",
"Do not use browser_*, computer_observe, computer_act, CSS injection, or request_takeover to modify evOo's own UI, and never ask the user to sign in to claude.ai or other third-party services for product changes.",
"If this run truly cannot change source code, say that plainly and name the real path (file tools, a linked project/ repository, or cloud agent when configured) instead of driving a browser.",
].join("\n");
}