agentleFS
aaziraniaazirani/flutter_agentify/.agents/skills/customizing-the-assistant/SKILL.md

customizing-the-assistant

Skill0 starsChanged 4 days agoMITView on GitHub

How to change what the assistant is told, what its chat says, how it looks, where it opens, and how to see what it sent. Use when editing the assistant's instructions, chat texts, chat appearance, panel or sheet behavior, or the debug inspector.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Don't load this for choosing the model or its settings.

    line 8
  2. Distinctive:

    Run the app in debug and open the inspector to read the system text.

    line 39

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Customizing the assistant

Don't load this for choosing the model or its settings; see model-providers. For what the assistant knows about the current screen, see app-context.

Rule

Change the assistant by editing the files below, not the packages. The instructions are a runtime asset, the chat texts come from the app's translations, and the chat takes its look from the app theme. The instructions file is bundled with the app, so the doctor's bundled-secrets check scans it: no key or key-shaped text in it.

Why

The assistant is part of the app, so it speaks the person's language and follows the theme. Keeping the instructions in an asset lets you change them without touching Dart, and keeping them short leaves room for the conversation.

How

  • Instructions: assets/assistant/instructions.md, loaded once at start in lib/ai/ai_injection.dart and passed to the session as appInstructions (lib/ai/assistant_providers.dart). Say what the app is, which tools exist and the rules the model must follow (for example: delete right away, the app shows the approval card). Update it when you add or rename an action. Don't paste the action list from the reference; the model already receives the tool definitions.
  • Chat texts: the chat takes an AssistantStrings object (defaults in English, packages/flutter_agentify_ui/lib/src/assistant_strings.dart). The app builds it from translations in lib/presentation/assistant/assistant_strings_l10n.dart. To change a text, change its assistant_* key in every file in assets/lang/; to add a text, add a field to AssistantStrings and a line in the l10n file (i18n-and-rtl).
  • Theming: the chat reads Theme.of(context) colors and text styles. Change the theme, not the chat widget. No hard-coded colors (no_hardcoded_colors).
  • Panel versus sheet: lib/presentation/assistant/assistant_shell.dart shows a 380-wide side panel when the window is at least assistantPanelBreakpoint (840) wide and a full-height bottom sheet otherwise. lib/presentation/assistant/assistant_toggle_button.dart makes the same decision when tapped. Change the breakpoint in one place, the constant.
  • Debug inspector: in debug builds only, the chat shows a button that opens the inspector: the system text sent, the tools offered and the last calls. Use it to check what the model really received. It does not exist in release builds.
  • Answer-only notice: shown when the model cannot use tools; see model-providers.
  • Which model answers: the chat takes a ModelStatus (header label, the in-app model's card, progress and states, the chat's menu). The app builds it in lib/presentation/assistant/assistant_shell.dart; its texts are the on_device_* keys. Where the model runs is chosen in lib/ai/assistant_setup.dart (model-providers).

Anti-patterns

  • Pasting a key, a URL with a token or user data into the instructions.
  • A literal string in the chat code instead of an assistant_* key.
  • Instructions that contradict approval (telling the model to ask in the chat before a delete; the app already asks).
  • Editing packages/flutter_agentify_ui to restyle one app.

Verification

  • dart run flutter_agentify_core:doctor --only bundled-secrets for the asset.
  • test/i18n/translations_test.dart for matching en and fa keys; test/presentation/assistant/assistant_shell_test.dart for panel versus sheet.
  • Run the app in debug and open the inspector to read the system text.
  • tool/check.sh (see verify).

Related skills

  • app-context — the screen block sent with each message
  • approval-and-safety — what the instructions must not override
  • i18n-and-rtl — adding translated chat texts
  • ui-design — theme and layout rules

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.