Skill v1.0.1
currentAutomated scan100/100+25 new
version: "1.0.1" name: ongeki-fumen-editor description: Develop, debug, extend, and review the OngekiFumenEditor WPF codebase built on Caliburn.Micro, Gemini, and MEF. Use when working in this repository on startup and composition, chart-domain model changes, OGKR or .nyagekiProj persistence, FumenVisualEditor behavior, editor modules and tool windows, runtime automation/MCP tools, menu/settings/keybindings/localization, rendering/audio/resources, or repository-specific troubleshooting.
Ongeki Fumen Editor
Use this skill for repo-native work in OngekiFumenEditor. It keeps changes aligned with the repository's existing WPF, Gemini, MEF, parser, editor, runtime-automation, and asset-packaging patterns.
Primary entry for the reference set:
references/compendium.md
Quick Routing
- Need source code but only have the skill package or partial local files:
read references/20-remote-source-access-and-code-lookup.md.
- Startup, plugin loading, shell, GUI/CMD behavior, IPC, or app lifetime:
read references/01-bootstrap-composition-and-lifetimes.md.
- Chart object definitions, object counts, relationship wiring, or editing primitives:
read references/02-chart-model-and-editing-primitives.md and references/03-ogkr-and-project-file-persistence.md.
- Editor document behavior, tool windows, toolbox, property browser, or viewport interactions:
read references/04-fumen-visual-editor-and-modules.md.
- MCP tools, runtime automation, script host, authorization, or editor summaries:
read references/05-runtime-automation-and-mcp.md.
- Menus, settings, localization, resources, or keybindings:
read references/06-settings-menus-localization-and-input.md.
- Rendering backend, graphics resources, audio, or project-file resource metadata:
read references/07-rendering-audio-and-resources.md and references/08-build-debugging-and-change-strategy.md.
- Script-driven editor tasks:
start with references/10-script-execution-surfaces.md, references/11-script-api-cheatsheet.md, and references/12-script-task-recipes.md, then load 13 through 19 only as needed.
- Repo-specific implementation checklists or change scoping:
read references/09-common-change-recipes.md.
- First-pass repository orientation:
read references/00-repository-map.md.
Workflow
- Route the task before editing.
- Read
references/00-repository-map.mdif the target subsystem is unclear. - If the local checkout is missing, partial, or not exposed to the current agent, use
references/20-remote-source-access-and-code-lookup.mdto open the canonical GitHub source tree first. - Then load only the pages needed for the current lane.
- Preserve repository wiring before introducing new abstractions.
- Read
references/01-bootstrap-composition-and-lifetimes.md. - Keep WPF, Caliburn.Micro, Gemini, and MEF composition intact.
- Prefer existing
[Export],[Export(typeof(...))],[ImportingConstructor],[ImportMany], andIoC.Get(...)patterns over introducing a different DI style. - Keep GUI mode, command-line mode, IPC, splash, and MCP startup behavior coherent.
- Treat cross-lane features as coordinated edits.
- Chart-domain changes usually require model, parser/formatter, editor mutation, and summary/count checks together.
- UI features often require menu definitions, commands, views/viewmodels, resources, localized text, and settings-page wiring together.
- Resource changes often require
OngekiFumenEditor.csprojitem updates in addition to the file itself.
- Follow the repo's mutation and persistence rules.
- Keep editor mutations undoable with
UndoRedoManager.ExecuteAction(...)and explicit undo lambdas. - Preserve dirty-state transitions and dependent view refresh behavior.
- Preserve
.nyagekiProjand fumen temp-file save flows instead of replacing them with direct in-place writes.
- Validate the lane you touched.
- For startup or global wiring, inspect
AppBootstrapper.cs, shell startup, and plugin discovery behavior. - For parser or model work, verify both load and save paths.
- For editor work, verify selection, viewport, property-browser, and undo/redo side effects.
- For MCP or runtime scripts, compile first when possible and preserve authorization, backup, and security-policy behavior.
- For MCP chart mutations, run
editor.checkafterwards and resolve everyerror/problemresult before reporting success — seereferences/05-runtime-automation-and-mcp.md("Mandatory: runeditor.checkafter every mutation batch"). - For strings, settings, or resources, update
.resx,.settings, generated designers, and project metadata as needed.
Review Focus
When reviewing changes in this repo, prioritize:
- lost MEF exports/imports or shell-registration regressions
- broken GUI/CMD/MCP startup ordering
- parser/save asymmetry between OGKR,
.nyagekiProj, and in-memory state - editor mutations that are no longer undoable or no longer update dirty state
- missing localized strings, settings wiring, or resource item metadata
- script or MCP changes that bypass authorization, backup, dispatcher, or security-policy rules
Repo-specific rules
- Keep the current stack: WPF on
net10.0-windows, Caliburn.Micro, Gemini, MEF composition, and project-specific helpers. - Default to
[Export],[Export(typeof(...))],[ImportingConstructor], and[ImportMany]instead of introducing a new DI style. - Use
LambdaUndoAction.Create(...)andUndoRedoManager.ExecuteAction(...)for editor mutations that must be undoable. - After any MCP chart mutation, call
editor.checkand fix what it reports: individual edits can pass argument validation yet break chart consistency (e.g. a lane-docked tap withoutsnapXToLanetripsWrongLocation). Reading the meta info back has no dedicated tool —editor.set_metainfoechoesoldValue. - Lanes and beams are start-plus-segment chains, not flat objects:
fumen.Lanes/fumen.Beamsenumerate only the starts, segments live instart.Children, and curve control points hang off individual segments. Keep the families straight when touching them (lane/lanenext/curvecontrol,beam/beamnext), and note thatOngekiFumen.AddObjectdeliberately does not handleLaneCurvePathControlObject(onlyRemoveObjectdoes) — a curve control point must be attached through its owning segment. FumenVisualEditorViewModelis partial; inspect sibling partials before adding editor behavior.- Many features follow the same slice shape:
MenuDefinitions.cs,Commands/,Views/,ViewModels/, and sometimesKernel/orGraphics/. - Expect
.nyagekiProjsave/load to normalize relative paths and use temp-file copy strategies. - If a change affects user-facing strings or settings, update the relevant
.resx,.settings, and setting page view/viewmodel together. - If a change adds files under
Resources, verify whether they must beResource,EmbeddedResource, or copied asNoneinOngekiFumenEditor.csproj. - Files under
Resources/skills/are currently copied to the build output as loose files and exposed to MCP clients as read-onlyskill://...resources. Treat them as documentation assets, not embedded resources, unless the project file or MCP host wiring changes again.