See InkPal work — no install required
Three real workflows from a real Flutter project (battlefield). No fake outputs, no edited timing.
1
/inkpal:audit on a vanilla Flutter project
139ms · 13 files · 8 rule packs · 101 rules
$ /inkpal:audit
{
"source": "railway:engine(8/8)",
"rules_run": 101,
"engine": {
"packs_loaded": [
"audit_ui", "analyzer_config", "modern_dart",
"test_standards", "responsive", "layout",
"type_nullsafety", "architecture"
],
"context_summary": "state: none | nav: imperative | platforms: ios/android",
"fetch_failures": [],
"conflicts": []
},
"findings_count": 12,
"findings": [
{ "rule": "missing_const", "file": "lib/main.dart:42",
"message": "Consider const constructor — saves rebuild cost." },
{ "rule": "unbounded_listview", "file": "lib/screens/home.dart:87",
"message": "ListView without shrinkWrap or bounded parent." },
...
],
"elapsed_ms": 139
}The engine block shows which rule packs the engine resolved for this project's stack — and which were excluded because they didn't apply (e.g. l10n excluded because no flutter_localizations in pubspec).
2
/inkpal:build with a one-paragraph spec
500ms plan + LLM-driven generation
$ /inkpal:build "Build a fitness tracker with home, workout list,
and detail screens. Use riverpod and go_router. http for
the API. Material 3. Target ios and android."
{
"plan": {
"screens": ["Home", "WorkoutList", "Detail"],
"packages": ["riverpod", "go_router", "http"],
"state_mgmt": ["riverpod"],
"targets": ["android", "ios"],
"confidence": 1.0
},
"policy_preview": {
"packs_will_apply": [
"modern_dart", "responsive", "layout",
"network", "navigation", "architecture"
],
"context_summary": "state: riverpod | nav: go_router | net:yes | platforms: android/ios",
"source": "merged"
},
"elapsed_ms": 500
}policy_preview tells the LLM (Claude/Cursor/etc.) exactly which audit rules will apply. The generated code follows them up-front instead of fighting them in code review.
3
/inkpal:test with quality scan
flutter test + test_standards rulepack
$ /inkpal:test
{
"passed": 0,
"failed": 1,
"test_quality": {
"packs_loaded": ["test_standards"],
"files_scanned": 1,
"findings": [
{ "file": "test/widget_test.dart:4",
"rule": "no_test_group",
"message": "Test file without group() —
flat tests harder to organise as suite grows." }
]
}
}Test runner output is enriched with quality findings — pumpAndSettle missing, test files outside test/, real ApiClient imported instead of a mock, etc.
Try it on your own project
Same flow, your codebase, your stack. 24-hour full access — email only, no card.
Already convinced? See pricing →