| name | create-package |
| description | Create a new package in the One Page monorepo with the required LICENSE symlink, README, and workspace registration. Use when adding a new core or feature package. |
| argument-hint | <core|features> <package_name> |
Create Package
Parse $ARGUMENTS as <directory> <package_name> where <directory> is either core or features.
Follow every step below in order. Do not skip steps or use alternative methods.
Step 1 — Scaffold the package
Use the official Flutter command. Manual directory creation is strictly forbidden.
fvm flutter create -t package packages/<directory>/<package_name> --project-name <package_name>
Example:
fvm flutter create -t package packages/core/my_utils --project-name my_utils
fvm flutter create -t package packages/features/my_feature --project-name my_feature
Step 2 — Replace the LICENSE with a symbolic link
The generated LICENSE file must be replaced with a symlink to the root LICENSE file to keep the project consistent.
rm packages/core/<package_name>/LICENSE
ln -s ../../../LICENSE packages/core/<package_name>/LICENSE
rm packages/features/<package_name>/LICENSE
ln -s ../../../LICENSE packages/features/<package_name>/LICENSE
Step 3 — Replace the generated README.md
Overwrite the flutter-create template README with actual content following this structure:
# <package_name>
A concise description of what this package does.
## Features
- Key feature 1
- Key feature 2
- Key feature 3
## Getting Started
Add the package to your `pubspec.yaml`:
```yaml
dependencies:
<package_name>:
path: ../../../packages/<directory>/<package_name>
```
Usage
// Practical example showing the primary use case
Do NOT leave any flutter-create template text (e.g., "A starting point for a Dart package.") in the README.
---
## Step 4 — Update the root README.md
Add a new entry for the package in the root `/README.md`. Follow the existing format and maintain alphabetical order within the `core/` or `features/` section. Use a brief, informative description.
---
## Step 5 — Register in Pub Workspaces
**Root `pubspec.yaml`** — add the package path to the `workspace:` section, keeping alphabetical order:
```yaml
workspace:
- packages/core/<package_name> # core packages
- packages/features/<package_name> # features packages
Package pubspec.yaml (packages/<directory>/<package_name>/pubspec.yaml) — add the workspace resolution field:
resolution: workspace
Step 6 — Set standard dev_dependencies
In packages/<directory>/<package_name>/pubspec.yaml, replace the generated dev_dependencies block with the project-standard set. Match the versions used in existing packages (check packages/features/haptics/pubspec.yaml as the reference):
dev_dependencies:
altive_lints: ^2.3.0
build_runner: ^2.15.0
flutter_test:
sdk: flutter
mockito: ^5.6.4
Also replace the generated analysis_options.yaml content to use altive_lints:
include: package:altive_lints/altive_lints.yaml
Step 7 — Verify the new package
fvm dart run melos bootstrap
fvm dart analyze
Both commands must complete without errors before the task is considered complete.