SC-8 Skills + system-prompt editor UI (CodeMirror, scope ladder, diff, reset) #630
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#630
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As an operator, I want a full-fidelity skills + system-prompts editor with a CodeMirror authoring pane, live markdown preview, a visual scope-ladder navigator, "Reset to factory" with a unified diff confirm, and a per-artifact revision history, so that the existing raw
Record<string, string><SkillsSection>is replaced by something I can actually use to evolve agent behaviour.Acceptance criteria
Route + shell
/settings/agent-config(or/agents/{type}/config).Skills | System prompts | Plugins | MCP | Marketplaces | Secrets | History. Tabs use the<Tabs>primitive perapps/web/CLAUDE.md.All | Builtin | Global | Agent type ▾ | Instance ▾) + free-text search.Builtinmuted,Overrideaccent,Instance overridewarning) + last-edited-at + a row-action menu (Edit,Fork to...,Reset to factory,View history).Skills + System prompts editor
<Markdown>preview (right), reusing the spec-editor primitive atapps/web/src/components/spec-editor/spec-editor.tsx.Builtin → Global → Agent type → Instance). Active chip highlighted; clicking a parent chip navigates to that scope's row, or shows an inline "Create override here" CTA when no row exists at that layer.Builtin difftoggle that opens a unified-diff modal vs. the factory body;Save+Reset to factorybuttons.Reset to factory: confirm dialog (apps/web/CLAUDE.mdpatterns) showing the unified diff and explicit copy: "This deletes the override and falls back to the factory copy. The current edit cannot be recovered unless revision history was kept."History tab
config_revisionrows. Columns: kind, name, scope, agent_type / instance, created_by, created_at, comment, action menu (View body,View diff vs. now,Restore).Cleanup
<SkillsSection>raw key-value editor is removed from the agent-instance page; a "Customize skills →" link replaces it, deep-linked to the new route filtered to the instance.Tests
apps/web/src/features/agents/sections.test.tsxcases for<SkillsSection>are migrated or deleted.apps/web/src/features/agent-config/skills-tab.test.tsx: renders the list, opens the editor, saves, falls back on reset, navigates via the scope ladder.apps/web/src/features/agent-config/history-tab.test.tsx: lists revisions, restores a revision.Out of scope
References
specs/agent-config-customization.md§Dashboard surface and §Story SC-8apps/web/src/features/agents/sections.tsx::SkillsSection— replaced by this storyapps/web/src/components/spec-editor/spec-editor.tsx— reusable CodeMirror + preview primitiveapps/web/src/components/planner/markdown.tsx— token-styled<Markdown>rendererapps/web/CLAUDE.md— primitives + a11y baseline + density rules🦵 @charles kicked the queue — re-running implement on @dev.