Piano Score Fingering Arrangement
Verify score facts, then generate and review two-hand fingering Skill: Piano Score Fingering Arrangement Owner: yannxinn Summary: Verify score facts, then generate and review two-hand fingering Tags: latest:0.1.0 Version history: v0.1.0 | 2026-08-16T08:22:14.885Z | auto Piano Score Fingering v0.1.0 - Initial release with support for piano score recognition from images, PDFs, MusicXML, MXL, or MuseScore files. - Preserves exact page coordinates of every notehead and delivers coord
Rank
62
Safety
84
Downloads
1.5k
Updated
Oct 10, 2026
Version
0.1.0
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.5K downloadsadoption · observed Oct 10, 2026
- Latest release
- 0.1.0release · observed Aug 16, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s175vkyg557rprrs31zwem4qt187twvc:piano-score-fingering- Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-yannxinn-piano-score-fingering/snapshot"
Documentation
CLAWHUB
56,736 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
--- name: piano-score-fingering description: Read piano scores from images, PDFs, MusicXML, MXL, or MuseScore files; preserve the page coordinates of every notehead; generate playable two-hand fingering with the bundled dynamic hand-position search; and deliver an annotated PDF or fingered MusicXML. Use for piano-score recognition, automatic fingering, coordinate-accurate score annotation, fingering review, and practice guidance without requiring PianoPlayer, MuseScore, ReportLab, or online OMR services. --- # Piano Score Fingering Complete the workflow when the host can read files, inspect score pages, run Python, and write output files. Use only the bundled scripts and capabilities already present in the host. Do not require the user to install software, Python packages, browser extensions, or online recognition services. ## Accuracy gates and delivery levels Never generate fingering from unverified score facts merely to produce an output. Always create inspectable artifacts. Deliver one of these outcomes: 1. **Complete**: process the full requested range and deliver PDF/MusicXML plus a report. 2. **Review required**: all performance semantics are verified, but non-semantic layout or musical-preference warnings remain; deliver the fingering result and report. 3. **Partial**: only when the full range cannot be recognized reliably. Complete at least one whole measure or full system and label every output as a partial experiment. Block fingering whenever pitch, clef, accidental, rhythm, hand, chord membership, tie, voice, or notehead identity is unresolved. On failure, still deliver the recognition plan, anchor audit, and error report. Historical outputs may reveal prior error types, but must never become recognition truth or a fingering target for a new task. Load references only when needed: use [references/professional-fingering-rules.md](references/professional-fingering-rules.md) for musical review, [references/fingering-plan-schema.md](references/fingering-plan-schema.md) when creating or repairing a visual recognition plan, and [references/common-fingering-errors.md](references/common-fingering-errors.md) when a validator or user identifies a matching error. Keep [NOTICE.txt](NOTICE.txt) with every redistributed copy. ## Choose the input path ### PDF or image 1. Make one complete recognition draft. Declare `measure_scope`, then create one `measure_region` for every page + measure + hand, including rest-only measures. 2. Classify symbols before reading pitch and rhythm. Put noteheads in `notes` and rests in `rests`; never treat stems, beams, barlines, dots, text, or rectangular rest marks as notes. 3. Record the true center of every visible notehead with `origin=direct_visual_notehead`. Locate every member of a touching chord separately and set `chord_member_verified=true`. Never infer a missing member from spacing or a repeated accompaniment pattern. 4. Use `pdf_point` coordinates with a bottom-left origin for PDFs and `pixel_top_
_meta.json
{
"ownerId": "kn775p024j3fvm7wzg9ge615a187t6nv",
"slug": "piano-score-fingering",
"version": "0.1.0",
"publishedAt": 1786868534885
}references/common-fingering-errors.md
# Common Fingering Errors Use this as a counterexample checklist after the first fingering pass and again before rendering. For evidence, priorities, exceptions, and implementation limits, see [professional-fingering-rules.md](professional-fingering-rules.md). ## 0. Correct-looking fingering on the wrong pitch - **Error:** notehead geometry shows a second, but the plan records a third and assigns the left-hand dyad `3-1`. - **Fix:** run `validate_recognition.py` and derive pitch from staff geometry and clef. Block every pitch/geometry contradiction before fingering. - Never bypass recognition gates with confidence scores, coverage, or a successfully generated PDF. ## 1. Missing a tightly spaced chord member - **Error:** two adjacent noteheads around one stem become one event, so a three-note chord receives only `1-5`. - **Fix:** inspect seconds at high zoom, bind every visible notehead, and assign the complete chord, such as `1-2-5`. - Finger-label count must equal visible notehead count. ## 2. Meaningless changes in an isomorphic transposed pattern - **Error:** structurally identical dyads use `1-5, 1-5, 1-4`. - **Fix:** keep `1-5, 1-5, 1-5` and move the hand as a unit. Change only for a documented continuation, articulation, key-shape, or span reason. ## 3. Reassigning an unchanged moving dyad - **Error:** a comfortable dyad that can shift laterally uses `1-3, 1-4, 1-5`. - **Fix:** preserve one shape, for example `1-5, 1-5, 1-5`, and review the whole sequence rather than isolated chords. ## 4. Skipping an available adjacent finger in scalar motion - **Error:** a descending step uses `5-3` even though finger 4 is free and natural. - **Fix:** prefer `5-4`. Skip only to prepare what follows or avoid an ergonomic problem, and record the reason. ## 5. Reusing one finger on successive different pitches - **Error:** a connected melody repeatedly uses the same finger without a planned crossing or shift. - **Fix:** use adjacent fingers, a prepared crossing, or an explicit lateral shift. Staccato, repeated notes, or intentionally detached leaps may be exceptions. ## 6. Finger distance does not match the dyad interval - **Error:** every dyad receives `1-5` or left-hand `5-1`, unnecessarily stretching a third. - **Fix:** begin with adjacent fingers for seconds, `1-3` (left hand low-to-high `3-1`) for thirds, `1-4` for fourths, and `1-5` for fifths or wider. Context may justify `2-4` or `3-5`, but the hand must stay relaxed and the reason must be recorded. ## 7. A single note competes with the next chord for the same finger - **Error:** left-hand bass 3 leads directly to a third with `3-1`, producing `3 -> 3-1`. - **Fix:** inspect the full transition. A bass below the chord normally uses 5, producing `5 -> 3-1`. Check single-to-chord and chord-to-single transitions finger by finger. ## 8. Copying a bad template through a repeated pattern - **Error:** `5-4-1` is copied across every wide descending three-note group without validating the fi
references/fingering-plan-schema.md
# Unified Fingering Plan Schema
All scripts read and write one JSON fingering plan. MusicXML supplies score semantics; `notes` also store physical key positions for search and page coordinates for overlay.
## Top-level structure
```json
{
"schema_version": "1.0",
"source": {"type": "pdf", "path": "source.pdf", "coordinate_unit": "pdf_point"},
"settings": {"hand_size": "M", "lookahead": 0},
"pages": [{"page": 1, "width": 595.28, "height": 841.89}],
"recognition": {
"status": "locked",
"scope": "pages 1-2",
"expected_note_count": 128,
"unresolved_note_count": 0,
"review_confidence_threshold": 0.8,
"confidence_policy": {
"require_independent_passes": 2,
"require_measure_region_coverage": true,
"require_measure_symbol_checks": true,
"require_rest_inventory": true,
"require_direct_notehead_anchors": true,
"require_dense_event_checks": true,
"dense_notehead_threshold": 8,
"require_notehead_shape_evidence": true,
"require_sparse_rest_checks": true,
"sparse_event_threshold": 1,
"require_same_position_evidence": true,
"require_tie_evidence": true
},
"event_count_checks": [
{"page": 1, "measure": 12, "hand": "RH", "expected_noteheads": 9,
"source": "independent_visual_count", "verified": true}
],
"measure_scope": [
{"page": 1, "measure_start": 1, "measure_end": 23, "hands": ["RH", "LH"]}
],
"measure_regions": [
{"region_id": "p1-m12-rh", "page": 1, "measure": 12, "hand": "RH",
"bbox": [80, 210, 270, 310], "evidence_crop": "crops/p1-m12-rh.png"}
],
"measure_symbol_checks": [
{"region_id": "p1-m12-rh", "page": 1, "measure": 12, "hand": "RH",
"expected_noteheads": 9, "expected_rests": 0, "duration_verified": true,
"source": "independent_visual_review", "evidence_crop": "crops/p1-m12-rh.png",
"verified": true}
],
"delivery_level": "complete",
"review_queue": [],
"fact_lock": {
"algorithm": "sha256-score-facts-v2",
"digest": "generated by manage_recognition.py freeze",
"note_count": 128
},
"verification": {
"scope_complete": true,
"staff_geometry": true,
"pitch_geometry": true,
"accidentals": true,
"rhythm": true,
"ties": true,
"chords": true,
"anchors": true
},
"systems": [
{"system_id": "p1-system1-rh", "page": 1, "staff": 1, "clef": "treble",
"staff_line_y": [246, 256, 266, 276, 286]}
]
},
"notes": [],
"rests": []
}
```
`source.type` is `pdf`, `image`, or `musicxml`. With `lookahead=0`, the generator selects 3–8 events automatically; use `--max-auto-depth 9` for a slow final search or set `lookahead=3–9` explicitly.
`recognition.delivery_level` is `complete`, `review`, or `partial`. Before image/PDF fingering generation, all eight verification gates must be true and `unresolved_note_count` must be zero. Record `systems[].staff_line_y` from vreferences/professional-fingering-rules.md
# Professional Piano Fingering Rules Use this document as the musical rule hierarchy for draft generation, human review, and exception explanations. `common-fingering-errors.md` contains only counterexamples. ## Evidence scope Only full primary papers, author manuscripts, and upstream source code were used. The rules below are original summaries; no paper text or tables are redistributed. ### Sources - **[P97]** Parncutt, Sloboda, Clarke, Raekallio, and Desain. *An Ergonomic Model of Keyboard Fingering for Melodic Fragments*. Music Perception 14(4), 1997, 341–382. [Author manuscript](https://static.uni-graz.at/fileadmin/_Persoenliche_Webseite/parncutt_richard/Pdfs/PaSlClRaDe97_FingeringModel.pdf). Supports playable/comfortable spans, stretch and compression, position changes, weak fingers, black/white keys, crossings, rhythm, tempo, articulation, register, repetition, and phrase boundaries. The model focuses mainly on monophonic legato fragments and its provisional average-hand weights are not universal. - **[AK07]** Al Kasimi, Nichols, and Raphael. *A Simple Algorithm for Automatic Generation of Polyphonic Piano Fingerings*. ISMIR 2007, 355–356. [Full paper](https://archives.ismir.net/ismir2007/paper/000355.pdf). Supports hard constraints for polyphony/chords and joint vertical chord comfort plus horizontal chord-to-chord motion, adjustable by hand size. It does not model substitutions, black/white-key differences, or automatic hand assignment. - **[N14]** Nakamura, Ono, and Sagayama. *Merged-output HMM for Piano Fingering of Both Hands*. ISMIR 2014. [Author manuscript](https://eita-nakamura.github.io/articles/Nakamura_etal_MergedOutputHMMForPianoFingering_ISMIR2014.pdf). Supports preserving within-hand voice continuity instead of assigning hands from an instantaneous pitch split. It is a statistical architecture, not a teaching rulebook. - **[N19]** Nakamura, Saito, and Yoshii. *Statistical Learning and Estimation of Piano Fingering*. Information Sciences 517, 2020; [open preprint](https://arxiv.org/pdf/1904.10237). Supports multi-event context, systematic performer variation, simultaneous/sustained-note constraints, and multiple acceptable answers. Statistical fit alone does not equal musical quality. - **[PP]** Marco Musy. [PianoPlayer](https://github.com/marcomusy/pianoplayer). Engineering basis for hand geometry, motion/duration cost, lookahead, and anchors. It is not a pedagogical authority and has limitations in ornamentation, hand interaction, and crossing cases. Exclude paywalled books, abstract-only papers, previews, blogs, and secondary summaries from the formal evidence base. ## Priority hierarchy Resolve conflicts in this order: 1. user-locked fingering, explicit composer instructions, and established musical intent; 2. playability and safety hard constraints; 3. articulation, voice, sustain, and phrase continuity; 4. relaxed hand shape, motion economy, and preparation; 5. consistency of repeated structures; 6. general pref
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/yannxinn/skills/piano-score-fingering",
"sourceUrl": "https://clawhub.ai/yannxinn/skills/piano-score-fingering",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T09:30:11.553Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-yannxinn-piano-score-fingering/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-yannxinn-piano-score-fingering/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T09:30:11.553Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.5K downloads",
"href": "https://clawhub.ai/yannxinn/piano-score-fingering",
"sourceUrl": "https://clawhub.ai/yannxinn/piano-score-fingering",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T09:30:11.553Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.1.0",
"href": "https://clawhub.ai/yannxinn/piano-score-fingering",
"sourceUrl": "https://clawhub.ai/yannxinn/piano-score-fingering",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-16T08:22:14.885Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-yannxinn-piano-score-fingering/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-yannxinn-piano-score-fingering/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.1.0",
"description": "Piano Score Fingering v0.1.0 - Initial release with support for piano score recognition from images, PDFs, MusicXML, MXL, or MuseScore files. - Preserves exact page coordinates of every notehead and delivers coordinate-accurate overlays. - Provides an integrated fingering workflow, including dynamic two-hand fingering search and annotated PDF or fingered MusicXML output. - Ensures verified score facts and blocks incomplete or ambiguous recognition before fingering. - Offers detailed inspection, review, and error auditing; outputs comprehensive reports and manage recognition plan lifecycle. - No additional software, libraries, or online OMR services required.",
"href": "https://clawhub.ai/yannxinn/piano-score-fingering",
"sourceUrl": "https://clawhub.ai/yannxinn/piano-score-fingering",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-16T08:22:14.885Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
