shortcuts-builder
Skill584 starsChanged 59 days agoMITView on GitHub
Build and remix Apple Shortcuts from natural-language automation requests in Minis — routing, clarification, action-chain planning, XML generation, local validation, and signing via a user-chosen backend; suited to system automation, notes, reminders, weather, share, URL, files, and hybrid shortcuts.
- Reads credentials
We split this skill into the rules it gives an agent
53 rules. About 0 are common, 31 are distinctive, and 22 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈31
Distinctive · estimate
This author's own choices. Worth a look.
22
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 31
Pick each action from the right source: Look at the identifier prefix:
- Very specific: line 41
Always use BUILD_CHECKLIST.md first to decide whether the conditions to start work are met.
- Very specific: line 42
Always determine the task label first: shortcut-native, shortcut-hybrid, not-shortcut-first.
- Distinctive: line 43
Always normalize the request into a task spec before choosing actions or writing XML.
- Distinctive: line 44
Always clarify before generating when the request has a key ambiguity.
- Very specific: line 46
Always proceed with the recommended (default) option when a user_ask card times out, and say which default was applied.
- Distinctive: line 47
Never use a default to choose a signing backend, to approve an upload to a third party (HubSign), or to authorize anything irreversible.
- Distinctive: line 48
Always prefer the most stable, shortest, and easiest-to-validate implementation route.
- Distinctive: line 49
Always prefer reusing framework-layer docs, the environment profile, patterns, recipes, and the XML snippet index.
- Distinctive: line 50
Always generate unsigned XML first, then run local validation, then decide whether to sign and deliver.
- Very specific: line 51
Always treat the final product directory as /var/minis/attachments/shortcut/.
- Very specific: line 52
Always save pre-signing drafts in /var/minis/attachments/shortcut/drafts/ or the archive directory.
- Very specific: line 53
Always use scripts/resolve-icon to set WFWorkflowIconGlyphNumber and WFWorkflowIconStartColor, unless the user explicitly specifies integer …
- Very specific: line 54
Always prefer scripts/placeholder-range to compute positions when a WFTextTokenString contains placeholders.
- Very specific: line 55
Always run the Craig Loop (validate, read the errors, apply targeted fixes, re-validate) with scripts/validate-shortcut.
- Very specific: line 56
Always confirm before signing that the user has chosen a signing backend (sign-shortcut --show-config).
- Very specific: line 57
Always sign with scripts/sign-shortcut.
- Distinctive: line 58
Always tell the user when delivering a signed product: the first import shows a system "untrusted shortcut" style prompt, and the user must …
- Very specific: line 59
Always verify before reporting completion: the file exists, its size is greater than 0, and its header is AEA1.
- Distinctive: line 60
Never generate XML directly when boundaries, order, or post-completion behavior are unclear.
- Distinctive: line 61
Never treat "XML generated" as done.
- Distinctive: line 62
Never hard-code one example as the default target.
- Distinctive: line 63
Never invent action identifiers, UUIDs, icon color values, or parameter structures.
- Very specific: line 65
Never write an enum whose value and title name different cases.
- Distinctive: line 66
Never push tasks such as complex web scraping, browser login state, downloaders, or transcoders into a pure shortcut by default.
- Very specific: line 67
Never present signing as a private, local-only step.
- Very specific: line 68
Never write an SSH password into a file or onto the command line.
- Distinctive: line 79
Does not apply to:
- Distinctive: line 81
Only analyzing the repository's value, without generating a shortcut
- Distinctive: line 82
Only explaining shortcut concepts, without an artifact
- Distinctive: line 160
If one is missing and would change the route, stop and clarify first.
- Very specific: line 164
Read CAPABILITY_DECISION.md and label the task:
- Very specific: line 172
If it is not-shortcut-first, do not proceed to XML generation.
- Very specific: line 176
Read ROUTING_FRAMEWORK.md and break the request into:
- Distinctive: line 190
If the spec is incomplete, do not proceed to generation.
- Very specific: line 194
If the spec lacks key boundaries, use CLARIFICATION_TEMPLATES.md, or run directly:
- Distinctive: line 203
Ask only questions that would change the route
- Distinctive: line 206
Ask in the user's language
- Very specific: line 228
Fallback: text template: Only when user_ask is not available, run render-clarification without --json and send the fixed option-style …
- Distinctive: line 239
Read the summary first, then decide whether the full profile is needed.
- Distinctive: line 272
If Minis-enhanced, the boundary between the Minis command chain and the shortcut
- Distinctive: line 294
Read only the parts the current task needs.
- Very specific: line 309
When a frequent action is hit, read XML_SNIPPET_PATTERNS.md first and use the minimal snippet skeleton directly.
- Very specific: line 313
Use scripts/resolve-icon to generate the icon and color
- Distinctive: line 314
When generating new UUIDs, prefer a stable command or Python
- Distinctive: line 315
Do not use placeholder UUIDs
- Distinctive: line 339
Before validating, automatically fix placeholder positions:
- Distinctive: line 348
Stop if the same error is unchanged for 2 consecutive rounds
- Distinctive: line 349
Prefer targeted fixes; do not rewrite the whole file
- Very specific: line 363
Run only in full-delivery mode.
- Distinctive: line 376
After the choice, configure once:
- Distinctive: line 415
If signed, also the product path
- Distinctive: line 449
Use patterns, recipes, and snippets to shorten planning and generation
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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
Shortcuts Builder
Language
Reply to the user in the user's language (e.g. Chinese question -> Chinese answer). The skill files themselves are English.
Goal
Reliably turn natural-language automation requests into one or more of the following results:
- A judgment on whether the task should be built as a shortcut first
- A route choice: pure Shortcuts / Hybrid / not-shortcut-first
- Action-chain planning
- An unsigned XML draft
- Locally validated XML
- A signed
.shortcutproduct
This skill is an adaptation of the upstream viticci/shortcuts-playground-plugin (MIT) for Minis on iPhone/iPad. It keeps the upstream knowledge base and methods, and adds Minis-oriented routing, clarification, an environment profile, build checks, and delivery logic. See UPSTREAM_ATTRIBUTION.md.
Quick Path (read this first)
For a typical request, do these in order. Every item is detailed later; this is the map.
- Decide the route (
BUILD_CHECKLIST.md,CAPABILITY_DECISION.md). If the request is not shortcut-first, stop. - Ask what is missing with
user_ask(section 4). Use the recommended default on timeout, except for signing and uploads. - Pick each action from the right source. Look at the identifier prefix:
is.workflow.actions.*-> first-party classic action ->ACTION_PARAM_INDEX.mdcom.apple.*-> first-party App Intent ->APPINTENTS.md- anything else (
<bundle id>.<Intent>) -> third-party App Intent ->THIRD_PARTY_INTENTS.mdandscripts/appintent_catalog.py
- Draft unsigned XML in
/var/minis/attachments/shortcut/drafts/, then validate (scripts/validate-shortcut) until it passes. - Sign only if the user wants a finished file, after they have chosen a backend. Then verify the file header is
AEA1. - Report the route, the action chain, the paths, and anything left for the user (apps to install, parameters to pick in the editor).
Hard Constraints
- Always use
BUILD_CHECKLIST.mdfirst to decide whether the conditions to start work are met. - Always determine the task label first:
shortcut-native,shortcut-hybrid,not-shortcut-first. - Always normalize the request into a task spec before choosing actions or writing XML.
- Always clarify before generating when the request has a key ambiguity.
- Always ask the user's choices with the
user_asktool when it is available (see section 4: batches of at most 4, recommended option first and set asdefault). Use the fixed option-style text template only whenuser_askis unavailable, and end it with a recommended flow and copyable confirmation text. Ask in the user's language. - Always proceed with the recommended (default) option when a
user_askcard times out, and say which default was applied. Never apply a default for aconfirm-type question; a timeout there means do not perform the action. - Never use a default to choose a signing backend, to approve an upload to a third party (HubSign), or to authorize anything irreversible. Those need an explicit answer.
- Always prefer the most stable, shortest, and easiest-to-validate implementation route.
- Always prefer reusing framework-layer docs, the environment profile, patterns, recipes, and the XML snippet index; do not assemble from scratch every time.
- Always generate unsigned XML first, then run local validation, then decide whether to sign and deliver.
- Always treat the final product directory as
/var/minis/attachments/shortcut/. - Always save pre-signing drafts in
/var/minis/attachments/shortcut/drafts/or the archive directory. - Always use
scripts/resolve-iconto setWFWorkflowIconGlyphNumberandWFWorkflowIconStartColor, unless the user explicitly specifies integer values. - Always prefer
scripts/placeholder-rangeto compute positions when aWFTextTokenStringcontains placeholders. - Always run the Craig Loop (validate, read the errors, apply targeted fixes, re-validate) with
scripts/validate-shortcut; at most 5 rounds, and stop if the same error is unchanged for 2 consecutive rounds. - Always confirm before signing that the user has chosen a signing backend (
sign-shortcut --show-config). If it is unconfigured (exit code 10), ask the user to pick one of the two backends first (use an interactive question tool if available); never choose HubSign on the user's behalf. - Always sign with
scripts/sign-shortcut; the backend ismac(the user's own Mac, over SSH) orhubsign(third-party; drafts are uploaded). - Always tell the user when delivering a signed product: the first import shows a system "untrusted shortcut" style prompt, and the user must tap "Allow" / "Import Anyway" once to finish installing.
- Always verify before reporting completion: the file exists, its size is greater than 0, and its header is
AEA1. - Never generate XML directly when boundaries, order, or post-completion behavior are unclear.
- Never treat "XML generated" as done; without a product or an explicit delivery status it is not complete.
- Never hard-code one example as the default target; all examples are pattern references only.
- Never invent action identifiers, UUIDs, icon color values, or parameter structures; when unsure, go back to the reference docs.
- Never label a third-party App Intent parameter as verified unless
THIRD_PARTY_INTENTS.mdlists it as verified (text and bool). Other kinds may be written only throughappintent_catalog.py step(experimental tier, variables for image/file/entity/array/date); name every experimental parameter in the report and ask the user to check it after import. Never invent a literal form for a refused kind. - Never write an enum whose
valueandtitlename different cases. - Never push tasks such as complex web scraping, browser login state, downloaders, or transcoders into a pure shortcut by default; switch to Hybrid when necessary.
- Never present signing as a private, local-only step. With
hubsign, drafts are uploaded to a third-party service: say so plainly and get the user's confirmation (--i-understand-upload). - Never write an SSH password into a file or onto the command line; reference an environment variable by name with
--password-env VARIABLE_NAME, or use--key.
Scope
Applies to:
- Generating a new shortcut
- Modifying or remixing an unsigned XML shortcut
- Turning a natural-language automation request into a reusable flow
- Completing planning, generation, validation, and on-demand signed delivery in Minis
Does not apply to:
- Only analyzing the repository's value, without generating a shortcut
- Only explaining shortcut concepts, without an artifact
- Decompiling or internally editing an already signed
.shortcut - Pure web search tasks
- Tasks clearly better executed directly by Minis than carried by a shortcut
Directory and Document Layers
Framework Layer
METHODOLOGY.md← Primary entry point: 10-step methodology cheat sheet; read this file first for every build taskBUILD_CHECKLIST.mdCAPABILITY_DECISION.mdROUTING_FRAMEWORK.mdCLARIFICATION_TEMPLATES.mdCOMMON_PATTERNS.mdACTION_RECIPES.mdTEMPLATE_MAPPING.mdTASK_FAMILY_INDEX.mdXML_SNIPPET_PATTERNS.mdACTION_PARAM_INDEX.mdKNOWN_PITFALLS.mdENV_PROFILE.mdSTABILITY_NOTES.md
Technical Reference Layer
BEST_PRACTICES.mdACTIONS.mdAPPINTENTS.mdAUTOMATION_TRIGGERS.md(OS 27 automation triggers; can only be written with an exported sample)PARAMETER_TYPES.mdPLIST_FORMAT.mdVARIABLES.mdCONTROL_FLOW.mdFILTERS.mdEXAMPLES.mdURL_SCHEMES.mdICONS_AND_COLORS.mdHEALTHKIT.mdTHIRD_PARTY_ACTIONS.mdTHIRD_PARTY_INTENTS.md(read before using any third-party app step: step structure, which parameter kinds may be authored, chaining, what is unverified)EXTRACTING_APP_INTENTS.md(maintainers only: how to extract a new app's intents from its package and refresh the catalog; not needed to build a shortcut, read it only when the user asks to add or update an app's intents)TOOLKIT_SNAPSHOT.mdgolden-shortcuts/index.jsonl
Script Layer
scripts/check-local-assetsscripts/profile-summaryscripts/load-env-profilescripts/preflight-requestscripts/render-clarificationscripts/resolve-iconscripts/placeholder-rangescripts/validate-shortcut(the default target is iOS/iPadOS, OS 27; no flag is needed for a normal iPhone shortcut. Add--target-platform macosonly for a Mac-only shortcut, and--target-os 26only to check against the older OS)scripts/lookup_action_grounding.py(look up action parameters/enum values/platform compatibility:python3 scripts/lookup_action_grounding.py --identifier openapp; same iOS default)scripts/appintent_catalog.py(search/show/step over the third-party App Intents catalog:python3 scripts/appintent_catalog.py search weather; details inTHIRD_PARTY_INTENTS.md)scripts/fix-positionsscripts/index-goldenscripts/match-goldenscripts/sign-shortcut(signing entry point, choose one of two backends; implementation insign_shortcut.py, HubSign channel insign_shortcut_via_hubsign.py)scripts/selftest_minis.py
Workflow
1. Pre-build Check
First read BUILD_CHECKLIST.md and confirm:
- Goal
- Entry point
- Input
- Destination
- Write mode
- Execution order
- Post-completion behavior
- Hybrid acceptance scope
If one is missing and would change the route, stop and clarify first.
2. Route Decision
Read CAPABILITY_DECISION.md and label the task:
shortcut-nativeshortcut-hybridnot-shortcut-first
Consult MINIS_CAPABILITIES.md to locate tools only when the user explicitly asks to involve Minis (for example "use Minis", "can Minis do this", or "go through Minis"). Otherwise decide the route as usual.
If it is not-shortcut-first, do not proceed to XML generation.
3. Task Spec Normalization
Read ROUTING_FRAMEWORK.md and break the request into:
goaltriggerinputtransformoutputdestinationpermissionsdependenciesinteractionruntimedelivery_mode
If the spec is incomplete, do not proceed to generation.
4. Necessary Clarification
If the spec lacks key boundaries, use CLARIFICATION_TEMPLATES.md, or run directly:
/var/minis/skills/shortcuts-builder/scripts/preflight-request 'raw user request'
/var/minis/skills/shortcuts-builder/scripts/render-clarification 'raw user request'Requirements:
- Ask only questions that would change the route
- The number of questions follows the number of key ambiguities
- The number of options follows the question itself; it is not fixed at 3
- Ask in the user's language
Preferred: the user_ask tool. Get the questions ready to send:
/var/minis/skills/shortcuts-builder/scripts/render-clarification --json 'raw user request'The output has batches; each batch is a valid questions array for one user_ask call (at most 4 questions per call). The recommended option is first and default is "0", so the card marks it as recommended. Translate the question and option text into the user's language before sending. Put every needed question in one call; start a second call only when a later question depends on an earlier answer.
Answer handling:
| Result | What to do |
answered / other | Use it. other text is the user's own words: follow it. |
delegated ("You decide") | Use the recommended option and state that assumption. |
timeout | Proceed with the default option, say plainly which default was applied so the user can correct it, and keep the build easy to change. |
dismissed | Do not ask the same question again; if the user's next message answers it, take that as the answer. |
unavailable | Fall back to the text template below. |
Defaults are the most reliable and least surprising route, never an irreversible one. Choose the default yourself when the tool output does not, using the same rule.
Fallback: text template. Only when user_ask is not available, run render-clarification without --json and send the fixed option-style template, ending with a recommended flow and copyable confirmation text.
5. Read the Environment Profile
Run first:
/var/minis/skills/shortcuts-builder/scripts/profile-summary
/var/minis/skills/shortcuts-builder/scripts/load-env-profileRead the summary first, then decide whether the full profile is needed. If defaults exist, use them directly; if missing but the route is unaffected, state a default and continue.
6. Pattern and Recipe Selection
Read first:
TASK_FAMILY_INDEX.mdCOMMON_PATTERNS.mdACTION_RECIPES.mdTEMPLATE_MAPPING.md
Once the action chain is determined, run scripts/match-golden to match the most relevant golden shortcut as a wiring reference:
/var/minis/skills/shortcuts-builder/scripts/match-golden --actions "action1,action2" --patterns "pattern1,pattern2" --top 2If the task has been clearly decided to go through Minis (the user asked for it), also confirm in this step:
- The exact subcommand and parameters of the required Minis command
- The input source (how the shortcut passes user input/files to Minis)
- The output write-back method (how Minis results return to the shortcut: clipboard/file/URL)
Determine:
- Which family the task belongs to
- Input pattern
- Control pattern
- Data-processing pattern
- Destination pattern
- Closing pattern
- Whether a frequent recipe skeleton can be reused directly
- Whether a stable mapping can directly shorten route selection
- If Minis-enhanced, the boundary between the Minis command chain and the shortcut
7. Technical Reference Reading
Check the cheat sheets first:
ACTION_PARAM_INDEX.md— confirm the required parameters and serialization of the current actionKNOWN_PITFALLS.md— confirm whether the current action hits a known pitfallSTABILITY_NOTES.md— confirm whether a known instability point is hit
Then read detailed references as needed:
BEST_PRACTICES.mdACTIONS.mdAPPINTENTS.mdTHIRD_PARTY_INTENTS.md(when the flow uses a third-party app's Intent)VARIABLES.mdCONTROL_FLOW.mdFILTERS.mdPARAMETER_TYPES.mdEXAMPLES.md
Read only the parts the current task needs; do not load all docs at once.
8. Action Chain Design
First write a short plan that states:
- Which actions are needed
- Which actions produce variables
- Which actions consume the previous step's output
- Whether Menu / If / Repeat / Dictionary / URL request is needed
- Which parts are done inside Shortcuts, and which are delegated to a URL scheme, a third-party app's App Intent, Minis, or an external web service
- For each third-party app step: look it up with
scripts/appintent_catalog.py(search, thenshow), note its authoring level (full/partial/editor-only), and generate the step withappintent_catalog.py step. Prefer a first-party action when one does the job. SeeTHIRD_PARTY_INTENTS.md.
9. Snippet Skeleton Selection
When a frequent action is hit, read XML_SNIPPET_PATTERNS.md first and use the minimal snippet skeleton directly.
10. Icon and UUID
- Use
scripts/resolve-iconto generate the icon and color - When generating new UUIDs, prefer a stable command or Python
- Do not use placeholder UUIDs
11. Draft Generation
Output to:
/var/minis/attachments/shortcut/drafts/<shortcut name>.xmlRequirements:
- Complete plist XML
- Not a fragment
- Meets the comment and structure requirements of
BEST_PRACTICES.md
12. Local Validation
Run:
/var/minis/skills/shortcuts-builder/scripts/validate-shortcut /path/to/draft.xmlBefore validating, automatically fix placeholder positions:
/var/minis/skills/shortcuts-builder/scripts/fix-positions /path/to/draft.xmlRules:
- At most 5 rounds
- Stop if the same error is unchanged for 2 consecutive rounds
- Prefer targeted fixes; do not rewrite the whole file
13. Delivery Mode Decision
Supported:
draft-onlybuild-and-validatefull-delivery
For complex new tasks default to build-and-validate; use full-delivery when the user explicitly wants a finished product.
14. Signing
Run only in full-delivery mode. First check the backend:
/var/minis/skills/shortcuts-builder/scripts/sign-shortcut --show-configIf configured is false (or signing exits with code 10), ask the user to pick one of the two with user_ask (an options question; put the Mac option first). A timeout here is not consent: do not sign and do not fall back to HubSign. Tell the user the build is ready unsigned and ask again later. The HubSign upload also needs its own explicit answer (--i-understand-upload only after the user chose it):
| Option | Privacy | Prerequisites |
| The user's own Mac (SSH) | Drafts are sent only to the user's own Mac; recommended | A Mac (macOS 12+) with the shortcuts command and SSH access; the user must provide an SSH key or put the password in an environment variable |
| HubSign (third-party, free) | Drafts are uploaded to a third-party service and their content is visible to the operator | None, zero configuration |
After the choice, configure once:
# Mac: pick one of the two (the password is passed only as an env var name; the value is never saved to disk)
scripts/sign-shortcut --setup-mac user@host --password-env MAC_SSH_PASSWORD
scripts/sign-shortcut --setup-mac user@host --key ~/.ssh/id_ed25519
# HubSign: you must first tell the user that drafts will be uploaded; add this flag only after the user agrees
scripts/sign-shortcut --setup-hubsign --i-understand-uploadThen sign as usual:
scripts/sign-shortcut /path/to/draft.xml --name "Shortcut Name"
# Optional: --mode anyone|people-who-know-me (mac backend only), --backend mac|hubsign (temporary override for this run)This step will:
- Archive the draft
- Sign with the chosen backend (the Mac backend uses a temporary directory on the remote side and deletes it after signing)
- Output the
.shortcutproduct and verify the header isAEA1
When delivering, remind the user: the signing certificate is issued by Apple per signature and is not the user's own developer certificate, so on first import iOS shows a system prompt and the user must tap "Allow" / "Import Anyway" once. This is a normal step, not a fault.
15. Final Verification and Report
Minimum verification:
- The product file exists
- The file size is greater than 0
- The file header is
AEA1
Report contents:
- Route type
- Action chain summary
- Draft path
- Validation status
- If signed, also the product path
- Prerequisites before running
- Which parts depend on the user's environment (for example which third-party apps must be installed)
Default Output Structure
Judgment tasks
- Task label
- Main reasons
- Recommended delivery mode
Generation tasks
- Flow summary
- Main dependencies
- Draft path
- Validation status
- Product path (if any)
Remix tasks
- What is kept
- What is changed
- New draft path
- Product path (if any)
Success Criteria
The skill is working as intended if it can:
- Decide first whether the task should be built as a shortcut
- Choose reliably between native / hybrid / not-shortcut-first
- Clarify first, rather than start work, when boundaries are unclear
- Use patterns, recipes, and snippets to shorten planning and generation
- Generate and validate XML grounded in the knowledge base
- Sign and deliver to
/var/minis/attachments/shortcut/when needed
In this repository56 other files it gives its agents.
- android-devSkill
- android-ui-automationSkill
- apple-remindersSkill
- appstoreprice-hubSkill
- asc-cliSkill
- bilibili-hubSkill
- Clash 控制器Skill
- cloudflare-dnsSkill
- codex-imageSkill
- codex-on-ishSkill
- contact-vcard-extractorSkill
- coredevice-toolkitSkill
- deepseek-usageSkill
- doubao-ttsSkill
- douyin-downloaderSkill
- evidence-chain-builderSkill
- exa-searchSkill
- free-ttsSkill
- fucai3d-latestSkill
- generative-ui-minisSkill
- github-sync-helperSkill
- health-sleep-analysisSkill
- health-training-checkinSkill
- hyperframes-cliSkill
- hyperframesSkill
- ios-devSkill
- korea-stockSkill
- maimai-hubSkill
- memos-apiSkill
- nano-bananaSkill
- notion-hubSkill
- openstreetmap-markerSkill
- pdf-converterSkill
- production-agent-publicSkill
- qbt-hubSkill
- quark-hubSkill
- reverse-dcfSkill
- self-improving-agentSkill
- shortcut-share-fileSkill
- spotify-hubSkill
- stock-fund-flowSkill
- stock-priceSkill
- tavily-searchSkill
- tg-hubSkill
- todoocardSkill
- twitter-downloaderSkill
- twitter-x-hubSkill
- us-stockSkill
- web-content-extractorSkill
- web-searchSkill
- weibo-hubSkill
- whenpeakSkill
- xianyu-hubSkill
- xiaohongshu-hubSkill
- youtube-downloaderSkill
- ytmusic-hubSkill
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.

