flint-interactions
Skill0 starsChanged 9 days agoMITView on GitHub
Choose and verify interactive Flint chart behavior: highlight, brush, zoom, legend toggles, filters, annotations, keyboard navigation, linked views, and reset. Use when a reader should explore a chart, an agent updates its state, or an app connects to it. Route to Flint's installed interaction grammar; distinguish behavior, state, boards, and application code. Do not add interactions to static-only output.
In this repository66 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/bootstrap-project/resources/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- skills/bootstrap-project/resources/CLAUDE.mdCLAUDE.md
- act-tenetsSkill
- adversarial-reviewSkill
- annotate-screenshotSkill
- anti-hallucinationSkill
- ascii-chartSkill
- assess-brainSkill
- big-ideaSkill
- bootstrap-coreSkill
- bootstrap-projectSkill
- browser-toolsSkill
- chart-big-ideaSkill
- chart-interpretationSkill
- chart-vocabularySkill
- code-reviewSkill
- communication-craftSkill
- compile-brainSkill
- convertSkill
- corpus-qa-sweepSkill
- critical-thinkingSkill
- deep-reviewSkill
- doc-hygieneSkill
- docs-shellSkill
- docx-to-mdSkill
- ethical-reasoningSkill
- evaluate-before-adoptingSkill
- figure-generatorSkill
- flint-chartSkill
- flint-themeSkill
- git-workflowSkill
- html-to-mdSkill
- humanizerSkill
- install-visual-companionsSkill
- lint-clean-markdownSkill
- markdown-mermaidSkill
- markdown-sanitization-chainSkill
- md-to-emlSkill
- md-to-htmlSkill
- md-to-txtSkill
- md-to-wordSkill
- meditationSkill
- mutation-testingSkill
- planSkill
- platform-awarenessSkill
- print-svg-style-guideSkill
- proactive-awarenessSkill
- problem-framing-auditSkill
- project-capability-authoringSkill
- project-statusSkill
- render-chartSkill
- render-verifySkill
- rich-emailSkill
- risk-analysisSkill
- security-and-hardeningSkill
- setup-dependenciesSkill
- setup-enterprise-stackSkill
- spikeSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. About 0 are common, 13 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
If called by chart authoring, keep its existing input and Chart Brief.
- Very specific: line 31
Read flint://interaction-skill or call get_flint_skill({ "skill": "interaction" }) before writing a spec.
- Distinctive: line 33
Use its relevant section for the selected workflow.
- Very specific: line 36
Call list_chart_types for the backend and list_interaction_presets with the exact chartType.
- Distinctive: line 42
If the resource or a required tool is unavailable, report the missing capability.
- Very specific: line 43
Do not invent names or silently substitute a static picture for requested interactivity.
- Distinctive: line 59
Use semantic field identities, not pixel coordinates or fabricated row IDs.
- Distinctive: line 76
Avoid competing drag, double-click, legend-click, or retained-focus handlers.
- Distinctive: line 84
Use only names/options supported by the installed grammar.
- Very specific: line 88
Call validate_chart with the complete chart and relevant interaction_spec or updates.
- Distinctive: line 91
Do not report that behavior as working.
- Distinctive: line 95
No server-side chart handle persists between calls: to revise it, preserve relevant current edits/state and send the full updated input …
- Distinctive: line 97
If the host cannot display interactive output, report the limitation.
- Distinctive: line 110
Check the after state and visible response against the acceptance contract, including linked recipients and preservation of unaffected data.
- Very specific: line 115
Prefer available native browser tools, retaining a permitted registered fallback for unsupported cases.
- Distinctive: line 118
If the live surface/state cannot be inspected, mark those checks unverified.
- Distinctive: line 126
Do not claim all presets, backends, hosts, or accessibility paths were tested.
- Distinctive: line 131
Use synthetic fixtures for potentially consequential tests.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Flint interactions
Turn the reader's question into a small, testable interaction contract. Flint owns its grammar and presets; this skill owns intent selection, authority, and behavioral acceptance. Interactions add behavior to a chart, not new chart types.
When to use
- Should fire: "Let me brush a period and reset it", "compare series on hover", "filter by region", "link the selection to this other chart", or "highlight these records when the chart opens".
- Should not fire: a static PNG/PDF export, a bare noninteractive spec, or a title/color-only edit with no requested exploration or behavior.
- An exploratory session can justify interactions without a named gesture. Identify the reader's actual question; do not install every available preset merely because the user said "interactive".
If called by chart authoring, keep its existing input and Chart Brief. Do not reload the caller or restart framing. For a direct request without a chart, identify the data, exact chart type, encodings, delivery host, and intended reader task before choosing behavior; clarify only material missing decisions.
1. Load the installed authority
Read flint://interaction-skill or call
get_flint_skill({ "skill": "interaction" }) before writing a spec.
Use its relevant section for the selected workflow; do not copy its preset,
option, update-op, or programming-API catalog here.
Call list_chart_types for the backend and
list_interaction_presets with the exact chartType. For a selected preset,
inspect its options and supported reset gestures. Chart support alone is not
enough: actual fields, discrete legends, continuous axes, and faceting can
change whether an interaction is admitted.
If the resource or a required tool is unavailable, report the missing capability. Do not invent names or silently substitute a static picture for requested interactivity. The reviewed 1.0.1 interaction workflow targets Vega-Lite; do not infer ECharts/Chart.js or static-output parity from successful rendering.
2. Select the workflow, not just a gesture
| Request | Owner-produced result | Load from Flint |
| Reader acts on a chart | interaction_spec beside the existing chart input | Interaction skill: Add interactions to the chart |
| Agent supplies emphasis, annotations, ordering, or viewport state | updates layers with the full chart input | Interaction skill: Update the chart |
| Several charts share a selection | Board link_spec, or application linking code only when requested | Board skill plus the interaction skill's Link charts section |
| Application reacts to a chart, or a preset cannot express the behavior | Approved project code using flint-chart/interactive | Interaction skill: application/bespoke sections |
Behavior and state are different. Read the current chart input, user edits, selection/filter/viewport state, and existing update layers when available. Preserve unrelated state and panel edits; do not guess an absent state snapshot. Use semantic field identities, not pixel coordinates or fabricated row IDs.
Preserve source data, semantic types, units, and analytical meaning. An explicitly requested filter changes the view, not the underlying dataset. Do not silently drop rows or change a denominator to make an interaction appear useful.
3. Define observable acceptance before authoring
For each selected behavior, record:
- The reader task and the smallest compatible preset or supported alternative.
- The target field/marks, gesture or external input, and expected visible/state change.
- Its reset or neutral-state behavior; for transient interactions, test pointer exit rather than inventing a persistent reset gesture.
- Keyboard access and activation/reset behavior appropriate to the task, with any host or preset limitation explicit.
- Gesture ownership, ordering, and conflict resolution when presets compose. Avoid competing drag, double-click, legend-click, or retained-focus handlers.
For linked views, define the fields each chart actually carries, which charts send/receive, and how selection and reset affect the other view. Load the native board grammar rather than inventing a second linking schema.
4. Author, validate, and display
Use only names/options supported by the installed grammar. Preset options belong in their supported options object. A bespoke callback needs an application host that runs code; it is not executable JSON inside an MCP chart.
Call validate_chart with the complete chart and relevant interaction_spec
or updates; use validate_board for a linked board. Inspect every error and
warning. A valid chart can still have a dropped interaction or a yielded trigger.
Do not report that behavior as working. Correct the conflict or explain the
unsupported part and agree on a meaningful alternative.
For App UI output, send the same validated complete chart or board to show.
No server-side chart handle persists between calls: to revise it, preserve
relevant current edits/state and send the full updated input again.
If the host cannot display interactive output, report the limitation; provide
static output only as an explicitly described alternative.
5. Exercise behavior and reset
Load and follow render-verify for visual/data checks. For themed controls, linked views, filtering, state layers, or narrow boards, load behavioral acceptance before choosing the probes. Test rendered affordances and semantic identity, not assumed DOM shape. Validation is not proof of working interaction. In a visible mounted chart:
- Capture the before state and check console errors and baseline values/marks.
- Perform each intended gesture, control change, or supported external update.
- Check the after state and visible response against the acceptance contract, including linked recipients and preservation of unaffected data.
- Perform reset, pointer exit, or return to the stated neutral state. Verify keyboard behavior separately where promised and repeat after any conflict fix.
Prefer available native browser tools, retaining a permitted registered fallback
for unsupported cases. A screenshot or accepted show response alone does not
establish that a gesture, reset, keyboard path, or linked selection worked.
If the live surface/state cannot be inspected, mark those checks unverified;
do not infer them from the spec or a static export.
Output and authority
Return the requested spec/update/code or chart, the chosen behavior and reason, resolved warnings/conflicts, and tested versus unverified acceptance cases. For spec-only requests, label runtime behavior unverified and do not force display. Do not claim all presets, backends, hosts, or accessibility paths were tested.
Opening records, changing external app state, sending data, installing packages, or modifying project code requires the corresponding user request and approval. A click handler or chart selection is not blanket consent for those effects. Use synthetic fixtures for potentially consequential tests.
Would revise if
Revise when installed grammar/preset discovery contradicts this routing, validation silently drops a requested behavior, gesture/reset or keyboard tests expose a gap, or linked/app authority becomes ambiguous.
References
Live documentation illustrates intent; the installed runtime remains the exact language authority. This skill changes neither runtime pins nor installation.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

