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.

Full access to everything. One trial per email. No auto-charge.

We'll email the key + a one-time trial-expiring reminder. No marketing emails. Privacy.

Already convinced? See pricing →