7.1 KiB
7.1 KiB
FileMaker AI Core
This repository provides reusable, client-neutral guidance for FileMaker AI work. It is normally consumed as a pinned Git submodule by a client workspace.
Scope and precedence
- Keep this repository free of client names, DDR exports, tickets, production data, credentials, and client-specific business rules.
- Read the consuming project's
PROJECT.mdbefore applying this guidance. Its confirmed client decisions, documented conventions, and verified current FileMaker evidence take priority over this core. - Preserve established legacy patterns unless a confirmed requirement deliberately changes them.
Evidence priority
When sources conflict, use this order unless the project's PROJECT.md documents a stricter project-specific rule:
- Confirmed current client decision in the ticket or project record
- Verified current FileMaker behavior or current parsed DDR evidence
- Other confirmed project documentation
- An organization-specific shared standard explicitly selected by the project
- This FileMaker Core guidance
Report meaningful conflicts instead of silently resolving them.
Standard repository map
Use these locations for a workspace that follows the standard project layout. A project may document only deviations in PROJECT.md.
../DDR/: local raw FileMaker DDR input. Never copy it into the repository or commit it; move it only as part of an explicitly approved filesystem migration.TICKETS/: one folder per ticket or workstream. Keep its source requests, handoffs, analysis, questions, reports, assets, and ticket-specific scripts together. Use ascripts/subfolder when it helps navigation.FMSCRIPTS/: default location for tracked.fmscriptfiles. Use it for FileMaker script work unless the user explicitly requests DDRparser text format.NOTES/: confirmed knowledge and business rules that apply across more than one ticket.DDR-Parsed/: tracked FileMaker reference material generated by DDRparser. Do not manually edit generated definitions outsideScripts/. When a project uses the DDRparser copy-and-paste workflow, edit the affectedScripts/*.txtfile in place for Git review, paste it into FileMaker, regenerate the DDR, and verify the round trip.ddr-parse.sh: runzsh ddr-parse.shfrom the project root to parse the latest DDR intoDDR-Parsed/when an up-to-date reference is needed.
Select the relevant skill
Read only the skill that matches the work; do not load every shared reference by default.
- Ticket, request, email, or handoff:
skills/ticket-analysis/SKILL.md - Current implementation, schema, script, calculation, layout, relationship, security, reporting, or integration analysis:
skills/ddr-analysis/SKILL.md - Any FileMaker script discussion, generation, edit, review, syntax question, or copy-and-paste preparation: use
.fmscriptby default and readskills/filemaker-fmscript/SKILL.mdand the examples it selects. - When the user explicitly requests DDRparser text format or a DDRparser copy-and-paste workflow, use
skills/filemaker-ddr-script/SKILL.mdinstead. - New or changed FileMaker object, field, variable, parameter, or result names:
skills/filemaker-naming/SKILL.md - Project-manager reply or short billable work report:
skills/ticket-delivery/SKILL.md
Standard workflow
- Put a new ticket, request, or email in its own
TICKETS/<ticket or workstream>/folder. - Analyze it with the relevant shared skill before proposing implementation.
- Review affected current definitions and dependencies in
DDR-Parsed/. - Turn unclear business rules into concise confirmation questions rather than assumptions.
- After implementation and DDR regeneration, re-check affected definitions, calculations, layouts, scripts, and report dependencies.
- Prepare client-facing delivery only after the work is reviewed or when explicitly requested.
Core rules
- Do not invent business rules, schema details, permissions, or implementation status. Separate confirmed behavior, verified current behavior, proposals, and open questions.
- Use parsed DDR as generated reference data and defer to direct FileMaker verification when the two conflict. The only standard manual-edit exception is an authorized DDRparser-format script change under
DDR-Parsed/<solution>/Scripts/; paste it into FileMaker and regenerate the DDR before calling it implemented. - Keep work practical and minimal. Review affected data, permissions, workflows, layouts, reporting, integrations, and regression risk where relevant.
- Do not make production changes, send client messages, or modify project files unless explicitly asked.
- Do not expose credentials or other sensitive values found in source material.
Implementation simplicity
- Prefer the simplest correct implementation that satisfies the confirmed requirement.
- Implement only currently required behavior. Do not add speculative flexibility, optional features, configuration, extension points, frameworks, or future-proofing.
- Avoid new helper scripts, custom functions, abstractions, files, and layers unless they are immediately needed.
- Keep each business rule in one place. When new or changed logic would otherwise be duplicated, centralize it using the smallest suitable existing structure. Do not refactor unrelated legacy duplication.
- When the same confirmed business rule is used in two or more FileMaker calculations or scripts, centralize it before adding another copy: prefer a calculation field for record-level logic that callers can reference; use a custom function only for genuinely parameterized or cross-context logic. Keep callers as references to that canonical logic. Do not create a shared object for single-use logic or where it would obscure behavior.
- Follow established project and FileMaker patterns unless a confirmed requirement requires a different approach.
- Make only the smallest necessary change. Avoid unrelated refactoring, cleanup, renaming, and formatting changes.
- Add error handling only for expected errors that affect the required workflow. Avoid generic catch-all handling, redundant
Get ( LastError )checks, defensive branches, logging, status variables, and cleanup blocks that do not change the required result. - Preserve the minimum necessary safeguards for destructive actions, imports, migrations, production changes, security, and data integrity.
- When a requirement is unclear, ask a focused question instead of implementing multiple hypothetical cases or defensive alternatives.
- Add comments only for non-obvious logic, business rules, and required dated change notes.
- Validate only the directly affected behavior with the smallest relevant checks. Do not create additional testing infrastructure unless it is necessary.
- Treat these rules as the default. Confirmed requirements, data safety, and verified existing behavior take priority. If additional complexity is necessary, explain the concrete reason briefly.
Response format
- Do not hard-wrap Markdown prose. Use line breaks only where Markdown structure or meaning requires them.
- Present every FileMaker script snippet, including partial sections, in a fenced
textblock and use.fmscriptformat by default. Use DDRparser text format only when the user explicitly requests it.