bootstrap-project
Skill0 starsChanged 49 days agoMITView on GitHub
Renames this template's Dart package, Android application id, iOS bundle id, app display name and app icon when starting a brand-new app from the clone; run this once, first, before any other skill or feature work.
11 other projects use a version of this.
Adopted by
Most recently taken up by
- jrjsmrtn/project-orchestration-skillstheir own version, first seen Nov 3, 2026
- zarubinvibe/athenatheir own version, first seen Nov 1, 2026
- holgerleichsenring/specification-first-agentic-developmenttheir own version, first seen Oct 28, 2026
- luiseiman/dotforgetheir own version, first seen Oct 13, 2026
- kohj1018/agentic-dev-harnesstheir own version, first seen Sep 29, 2026
- hidekitux/skillstheir own version, first seen Sep 8, 2026
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 11
- holgerleichsenring/specification-first-agentic-development★ 41same name
- jrjsmrtn/project-orchestration-skills★ 17same name
- luiseiman/dotforge★ 8same name
- jkm-4314/claude-code-skills★ 4same name
- cahenesy/throughline★ 3same name
- farmisen/skills★ 2same name
- hazarsozer/ren-os★ 2same name
- kohj1018/agentic-dev-harness★ 2same name
- zarubinvibe/athena★ 2same name
- hidekitux/skills★ 0same name
1 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository35 other files it gives its agents.
- AGENTS.mdAGENTS.md
- choose-data-stackSkill
- code-reviewSkill
- conventional-commitsSkill
- data-providerSkill
- domain-modelingSkill
- error-handlingSkill
- flavors-and-flagsSkill
- flutter-fvmSkill
- localizationSkill
- new-featureSkill
- quality-gateSkill
- routingSkill
- state-managementSkill
- testingSkill
- themingSkill
- ui-screenSkill
- bootstrap-projectSkill
- choose-data-stackSkill
- code-reviewSkill
- conventional-commitsSkill
- data-providerSkill
- domain-modelingSkill
- error-handlingSkill
- flavors-and-flagsSkill
- flutter-fvmSkill
- flutter_fvmSkill
- localizationSkill
- new-featureSkill
- quality-gateSkill
- routingSkill
- state-managementSkill
- testingSkill
- themingSkill
- ui-screenSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 2 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 10 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Run the bundled codemod from the repo root:
- Very specific: line 33
Every import 'package:flutter_agentic_template/...' in lib/ and test/ (see test/app_test.dart, test/widget_test.dart, …
- Distinctive: line 43
After running it, confirm nothing was missed:
- Very specific: line 59
Run this at the repo root (it's a pub workspace — see AGENTS.md section 17).
- Very specific: line 96
Verify: grep -n "alfredobs97" android/app/build.gradle.kts returns nothing.
- Very specific: line 133
Verify: grep -rn "flutterAgenticTemplate\|Flutter Agentic Template" ios/ returns nothing outside of comments you intentionally left.
“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Bootstrap a new app from the template
This template ships as flutter_agentic_template / com.alfredobs97.flutter_agentic_template
everywhere — the root Dart package name, the Android applicationId, the iOS
PRODUCT_BUNDLE_IDENTIFIER, and the display name shown on the home screen and
in the OS task switcher. Run this skill exactly once, immediately after
cloning the template and before writing any feature code (AGENTS.md
introduction and section 19 both point here first).
Work through the steps in order. Steps 1–2 are automatable; steps 3–5 touch
native project files that Xcode/Gradle tooling can silently corrupt if
scripted blindly, so do them by hand, file by file, and verify with grep
after each edit.
1. Rename the Dart package
The root pubspec.yaml's name: field and every package:flutter_agentic_template
import across lib/ and test/ must change together, or the workspace fails
to resolve.
Run the bundled codemod from the repo root:
fvm dart run tool/rename_project.dart --name your_app_nameThis rewrites:
pubspec.yaml's top-levelname:field.- Every
import 'package:flutter_agentic_template/...'inlib/andtest/(seetest/app_test.dart,test/widget_test.dart,test/app_environment_test.dart,test/feature_flag_defaults_test.dartfor the current occurrences) toimport 'package:your_app_name/...'.
Pass a valid Dart package name: lowercase snake_case, no leading digit. The
three workspace packages (domain, data, ui) are intentionally not
renamed by this tool — their names are generic on purpose and never appear in
a store listing.
After running it, confirm nothing was missed:
grep -rn "flutter_agentic_template" --include="*.dart" lib/ test/ packages/The only expected remaining hits are inside packages/* doc comments that
reference this skill or AGENTS.md by description, not by import — read each
hit before assuming it's stale.
2. Verify the workspace still resolves
fvm flutter pub getRun this at the repo root (it's a pub workspace — see AGENTS.md section 17).
A renamed package with a stale import anywhere still fails this step; fix any
Target of URI doesn't exist error it reports before moving on.
3. Change the Android applicationId and display name
Edit android/app/build.gradle.kts by hand:
android {
namespace = "com.yourcompany.your_app" // was com.alfredobs97.flutter_agentic_template
...
defaultConfig {
applicationId = "com.yourcompany.your_app" // was com.alfredobs97.flutter_agentic_template
...
}
...
productFlavors {
create("dev") {
dimension = "env"
applicationIdSuffix = ".dev"
versionNameSuffix = "-dev"
resValue(type = "string", name = "app_name", value = "Your App Dev")
}
create("prod") {
dimension = "env"
resValue(type = "string", name = "app_name", value = "Your App")
}
}
}The dev/prod flavor structure (base id + .dev suffix for the dev build)
already matches the two-flavor setup described in AGENTS.md section 14 —
change only the namespace, applicationId and the two resValue app_name
strings, not the flavor structure itself.
Verify: grep -n "alfredobs97" android/app/build.gradle.kts returns nothing.
4. Change the iOS bundle id and display name
The iOS bundle id is not centralized in one file. The base id is baked
into ios/Runner.xcodeproj/project.pbxproj as
PRODUCT_BUNDLE_IDENTIFIER = "com.alfredobs97.flutterAgenticTemplate$(APP_BUNDLE_ID_SUFFIX)"
(note the camelCase form — Xcode identifiers don't use underscores). Find
every occurrence:
grep -n "flutterAgenticTemplate" ios/Runner.xcodeproj/project.pbxprojThis currently matches six XCBuildConfiguration blocks: Debug,
Debug-dev, Debug-prod, Release, Release-dev, Release-prod
(and the corresponding Profile-dev/Profile-prod blocks, plus the
RunnerTests target's own three). Replace flutterAgenticTemplate with your
app's identifier segment (camelCase, e.g. yourApp) in every match — a
partial replace leaves some build configurations pointing at the old bundle
id, which only surfaces later as a confusing code-signing mismatch.
Then edit the two flavor xcconfig files, which supply the suffix and the
display name for the -dev/-prod build configurations referenced above:
ios/Flutter/flavor-dev.xcconfig:
APP_BUNDLE_ID_SUFFIX=.dev
APP_DISPLAY_NAME=Your App Devios/Flutter/flavor-prod.xcconfig:
APP_BUNDLE_ID_SUFFIX=
APP_DISPLAY_NAME=Your AppVerify: grep -rn "flutterAgenticTemplate\|Flutter Agentic Template" ios/ returns nothing outside of comments you intentionally left.
5. Change the app display name in localized strings
The ARB source files also carry the display name as the appTitle key,
consumed via context.l10n.appTitle in onGenerateTitle (lib/app.dart) —
see AGENTS.md section 11 for the localization workflow.
packages/ui/lib/l10n/app_en.arb:
{
"appTitle": "Your App",
"@appTitle": {
"description": "The app's display name, used as the MaterialApp title and in the OS task switcher."
}
}packages/ui/lib/l10n/app_es.arb:
{
"appTitle": "Tu App"
}Then regenerate from packages/ui/:
cd packages/ui && fvm flutter gen-l10n6. Replace the placeholder app icon
Drop your own 1024×1024 artwork at assets/icon/app_icon.png (overwriting
the placeholder), then regenerate native icons and the splash screen from the
repo root:
fvm dart run flutter_launcher_icons
fvm dart run flutter_native_splash:createBoth generators are already configured in the root pubspec.yaml
(flutter_launcher_icons: / flutter_native_splash: sections) — you only
need to supply the artwork, not touch the config, unless you also want to
change the splash background color (color/color_dark, currently
#0E0E10).
7. Final repo-wide sanity check
Even though the previous steps cover every known occurrence, do one last sweep before calling the bootstrap done — a fork or a future template update could have added a new reference:
grep -rn "alfredobs97\|flutter_agentic_template\|flutterAgenticTemplate\|Flutter Agentic Template" \
--include="*.dart" --include="*.yaml" --include="*.yml" --include="*.arb" \
--include="*.xcconfig" --include="*.kts" --include="*.plist" . \
| grep -v "/build/" | grep -v "ios/Flutter/Generated.xcconfig"ios/Flutter/Generated.xcconfig is excluded because Flutter regenerates it
on every build from ios/Flutter/flavor-*.xcconfig and the Xcode project —
never hand-edit it.
ai/agents/*.yaml and ai/mcp.yaml do not currently reference
com.alfredobs97 or the template's package name, so no edit is expected
there — the grep above is the check that stays true, not a step that should
find something.
The git remote and turning this clone into your own GitHub repository (or detaching it from the template relationship) are manual steps outside this skill's scope — this skill only covers in-repo identifiers.
8. Confirm the quality gate still passes
fvm flutter pub get
fvm dart run tool/quality_gate.dartThis runs format, analyze, the architecture-boundary check, the AI-config sync check and the full test suite (AGENTS.md section 17) — a passing run here is the signal that every rename above was applied consistently and nothing is left half-renamed.
Checklist
pubspec.yamlname:and everypackage:import inlib//test/updated (viatool/rename_project.dart).fvm flutter pub getresolves cleanly from the repo root.- Android
namespace,applicationId, and bothresValue app_namestrings updated inandroid/app/build.gradle.kts. - Every
PRODUCT_BUNDLE_IDENTIFIERoccurrence inios/Runner.xcodeproj/project.pbxprojupdated (six-plus matches, including theRunnerTeststarget). APP_DISPLAY_NAMEupdated in bothios/Flutter/flavor-dev.xcconfigandios/Flutter/flavor-prod.xcconfig.appTitleupdated inapp_en.arbandapp_es.arb,fvm flutter gen-l10nre-run.assets/icon/app_icon.pngreplaced,flutter_launcher_iconsandflutter_native_splash:createre-run.- Final repo-wide grep for
alfredobs97/flutter_agentic_templatereturns nothing unexpected. fvm dart run tool/quality_gate.dartexits 0.
Common mistakes
- Renaming the Dart package but leaving native ids untouched — the app builds and runs, but ships under the template's own bundle id, which will collide with the template author's app on a shared device or app store.
- Editing only the
Debug/ReleasePRODUCT_BUNDLE_IDENTIFIERentries inproject.pbxprojand missing the-dev/-prodflavor variants (or theRunnerTeststarget) — always grep for every match, don't eyeball the file. - Hand-editing
ios/Flutter/Generated.xcconfig— it is regenerated by Flutter tooling and any manual edit is silently discarded. - Forgetting
fvm flutter gen-l10nafter editing the ARB files — the oldappTitlestring stays baked into the generatedAppLocalizationsclass until regenerated. - Running
tool/rename_project.dartfrom inside a package directory instead of the repo root.
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.

