You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PawWork should have a clear factory-default agent behavior that comes from PawWork itself, not from whatever legacy instruction file happens to exist on the user's machine.
As a user, I should be able to start PawWork and get the intended product behavior without first creating AGENTS.md, understanding OpenCode internals, or relying on a global Claude Code config.
What do you do today?
Today the runtime instruction path is still shaped by compatibility with existing coding-agent conventions:
project AGENTS.md can be loaded
project CLAUDE.md can be loaded as a compatibility fallback
PawWork config AGENTS.md can be loaded if present
runtime/global config AGENTS.md can be loaded if present
global ~/.claude/CLAUDE.md can still be used as a fallback
This creates two product problems:
PawWork does not own enough of its factory-default behavior. If no PawWork or project instructions exist, global Claude instructions can become the effective baseline.
PawWork's current system prompt is too thin for the product role. It does not clearly guide default behavior for asking questions, tracking progress, using skills, or handling instruction sources.
The previous direction for this issue was to ship or generate a default global AGENTS.md. That is no longer the preferred direction. PawWork should not silently create user instruction files by default. User-owned AGENTS.md should remain an explicit customization surface.
What would a good result look like?
PawWork owns its default behavior through the built-in system prompt and a simple, explainable instruction fallback contract.
Recommended instruction source behavior:
Built-in PawWork system prompt is always the product baseline.
Project AGENTS.md is loaded when present.
Project CLAUDE.md remains a compatibility fallback when no project AGENTS.md applies.
PawWork-owned global AGENTS.md from PAWWORK_CONFIG_DIR is loaded when present.
Existing runtime/global config AGENTS.md may remain as compatibility behavior, but it should be clearly labeled in diagnostics.
Global ~/.claude/CLAUDE.md should not be used as a PawWork fallback.
User instructions can supplement the PawWork baseline, but cannot replace core PawWork safety and product behavior.
The system prompt should stay English and product-level. It should not include project-specific Git rules, PR conventions, commit policy, or developer-only workflow preferences.
System prompt guidance
The PawWork system prompt should describe PawWork as an open-source desktop AI agent for everyday work.
It should guide these default behaviors:
Understand before acting. Distinguish questions, analysis, and execution requests.
Verify checkable claims before stating them as fact.
Use the question tool proactively when user preferences, missing context, real trade-offs, or risky choices would materially affect the next action. Recommended options should be listed first.
Use the todo tool proactively for multi-step work, debugging, PR work, long research, file changes, and external-state changes. Keep it lightweight for one-shot answers and small read-only checks.
Use the skill tool when an available skill clearly matches a task, especially for documents, spreadsheets, writing, research, data organization, platform operations, and repeatable workflows.
Keep judgment, final synthesis, and user-facing decisions in the main conversation.
Avoid promising unavailable capabilities. For example, do not claim default web search behavior until the search product work is available.
Subagent guidance should wait for #128 so the model-facing tool name and behavior are no longer confused with a generic task tool.
PawWork no longer falls back to global ~/.claude/CLAUDE.md as an instruction source.
Project-level CLAUDE.md remains available as a compatibility fallback when project AGENTS.md is absent.
Diagnostics or session debug output can explain loaded, considered, and ignored instruction sources, including why global Claude fallback was ignored.
Focused tests cover fresh install behavior, project AGENTS.md, project CLAUDE.md fallback, PawWork global AGENTS.md, and ignored global Claude fallback.
What task are you trying to do?
PawWork should have a clear factory-default agent behavior that comes from PawWork itself, not from whatever legacy instruction file happens to exist on the user's machine.
As a user, I should be able to start PawWork and get the intended product behavior without first creating
AGENTS.md, understanding OpenCode internals, or relying on a global Claude Code config.What do you do today?
Today the runtime instruction path is still shaped by compatibility with existing coding-agent conventions:
AGENTS.mdcan be loadedCLAUDE.mdcan be loaded as a compatibility fallbackAGENTS.mdcan be loaded if presentAGENTS.mdcan be loaded if present~/.claude/CLAUDE.mdcan still be used as a fallbackThis creates two product problems:
The previous direction for this issue was to ship or generate a default global
AGENTS.md. That is no longer the preferred direction. PawWork should not silently create user instruction files by default. User-ownedAGENTS.mdshould remain an explicit customization surface.What would a good result look like?
PawWork owns its default behavior through the built-in system prompt and a simple, explainable instruction fallback contract.
Recommended instruction source behavior:
AGENTS.mdis loaded when present.CLAUDE.mdremains a compatibility fallback when no projectAGENTS.mdapplies.AGENTS.mdfromPAWWORK_CONFIG_DIRis loaded when present.AGENTS.mdmay remain as compatibility behavior, but it should be clearly labeled in diagnostics.~/.claude/CLAUDE.mdshould not be used as a PawWork fallback.The system prompt should stay English and product-level. It should not include project-specific Git rules, PR conventions, commit policy, or developer-only workflow preferences.
System prompt guidance
The PawWork system prompt should describe PawWork as an open-source desktop AI agent for everyday work.
It should guide these default behaviors:
questiontool proactively when user preferences, missing context, real trade-offs, or risky choices would materially affect the next action. Recommended options should be listed first.todotool proactively for multi-step work, debugging, PR work, long research, file changes, and external-state changes. Keep it lightweight for one-shot answers and small read-only checks.skilltool when an available skill clearly matches a task, especially for documents, spreadsheets, writing, research, data organization, platform operations, and repeatable workflows.Subagent guidance should wait for #128 so the model-facing tool name and behavior are no longer confused with a generic
tasktool.Dependencies and related issues
Hard dependency:
subagentbehavior without reinforcing the confusingtasknaming.Related but not blocking:
AGENTS.md. That onboarding should not be required for [Feature] Improve PawWork system prompt and instruction fallback order #230.Future architecture direction:
Which audience does this matter to most?
Both
Extra context
This issue is product-facing, but the implementation lives in the harness/runtime layer.
The relevant current files are:
packages/opencode/src/session/prompt/pawwork.txtpackages/opencode/src/session/system.tspackages/opencode/src/session/instruction.tsA previous live check showed the current problem clearly:
AGENTS.mdorCLAUDE.mdAGENTS.mdwas absent~/.claude/CLAUDE.mdexistedThat behavior may be technically intentional as compatibility, but it is not a good PawWork factory default.
Scope
In scope:
~/.claude/CLAUDE.md.CLAUDE.mdfallback when no projectAGENTS.mdapplies.AGENTS.mdcustomization paths explicit and explainable.Out of scope:
AGENTS.md.AGENTS.md; track that in [Feature] Add onboarding guidance for user AGENTS.md #238.CLAUDE.mdcompatibility.Acceptance criteria
question,todo, andskilltools.~/.claude/CLAUDE.mdas an instruction source.CLAUDE.mdremains available as a compatibility fallback when projectAGENTS.mdis absent.AGENTS.md, projectCLAUDE.mdfallback, PawWork globalAGENTS.md, and ignored global Claude fallback.