Skip to content

Commit 526a813

Browse files
Wreoslozhkovoi
andauthored
feat: standardize agent/skill outputs and add validation runner (#19)
Co-authored-by: Aleksandr Lozhkovoi <aleksandr.lozhkovoi@enpal.de>
1 parent 56a0272 commit 526a813

15 files changed

Lines changed: 143 additions & 2 deletions

File tree

.cursor-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "flutter-cursor-plugin",
33
"displayName": "Flutter Cursor Plugin",
4-
"version": "1.10.2",
4+
"version": "1.10.3",
55
"description": "Open-source Cursor plugin for end-to-end Flutter development and testing with Dart MCP, Figma MCP, practical architecture patterns, and reliable test workflows.",
66
"author": {
77
"name": "Aleksandr Lozhkovoi",

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Unreleased
44

5+
- Added output expectations to all agents and standardized required output sections across all skills.
6+
- Added validation script for agent/skill prompt quality:
7+
- `scripts/validate_agents_skills.sh`
8+
- Verified prompt test matrix for all agents/skills (26 checks, all passing).
59
- Hardened command prompts with shared execution guardrails:
610
- `docs/prompt-execution-guardrails.md`
711
- Added deterministic validation guidance:

agents/flutter-app-builder.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,10 @@ Primary agent for Flutter feature development.
3030
- Keep architecture layered (presentation/domain/data boundaries).
3131
- Add/update tests proportionally to behavior changes.
3232
- Prefer incremental, reviewable changes over large rewrites.
33+
34+
## Output expectations
35+
36+
1. Selected route/skill and reason.
37+
2. Scope and files touched.
38+
3. Validation commands and results.
39+
4. Risks or follow-up steps.

agents/flutter-code-reviewer.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,10 @@ Dedicated agent for code review and conventions.
2222
- Missing error handling.
2323
- Test gaps and brittle assertions.
2424
- Accessibility and localization risks.
25+
26+
## Output expectations
27+
28+
1. Findings first, ordered by severity.
29+
2. File references for each finding.
30+
3. Security findings included explicitly.
31+
4. Residual risks/testing gaps summary.

agents/flutter-mobile-release-manager.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,10 @@ Dedicated agent for mobile app publishing readiness.
1818
- Android Play-ready build and signing checks.
1919
- iOS App Store-ready archive and signing checks.
2020
- Versioning, release notes, privacy declarations, and submission gating.
21+
22+
## Output expectations
23+
24+
1. Android readiness status.
25+
2. iOS readiness status.
26+
3. Validation evidence (commands/artifacts/checklists).
27+
4. Blocking issues before submission.

agents/flutter-test-writer.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,10 @@ Main router for Flutter test tasks.
2525
- For widget tests, enforce behavior-first assertions (actions, branching, side effects), not synthetic-only attribute checks.
2626
- For Patrol E2E tests, cover critical user journeys only (slow lane), keep unit/widget tests as fast lane.
2727
- Run only impacted tests before finishing.
28+
29+
## Output expectations
30+
31+
1. Test type selected (widget/bloc/integration) and reason.
32+
2. Files changed and template used.
33+
3. Test commands run and pass/fail result.
34+
4. Remaining coverage gaps.

plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "flutter-cursor-plugin",
33
"displayName": "Flutter Cursor Plugin",
4-
"version": "1.10.2",
4+
"version": "1.10.3",
55
"description": "Open-source Cursor plugin for end-to-end Flutter development and testing with Dart MCP, Figma MCP, practical architecture patterns, and reliable test workflows.",
66
"author": "Aleksandr Lozhkovoi",
77
"license": "MIT",

scripts/validate_agents_skills.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/usr/bin/env bash
2+
3+
set -euo pipefail
4+
5+
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
6+
cd "${repo_root}"
7+
8+
pass_count=0
9+
fail_count=0
10+
11+
check() {
12+
local name="$1"
13+
local cmd="$2"
14+
if eval "${cmd}" >/dev/null 2>&1; then
15+
echo "PASS | ${name}"
16+
pass_count=$((pass_count + 1))
17+
else
18+
echo "FAIL | ${name}"
19+
fail_count=$((fail_count + 1))
20+
fi
21+
}
22+
23+
# Agents (4)
24+
check "A1 flutter-app-builder output expectations" "rg -q '^## Output expectations' agents/flutter-app-builder.md"
25+
check "A2 flutter-test-writer output expectations" "rg -q '^## Output expectations' agents/flutter-test-writer.md"
26+
check "A3 flutter-code-reviewer output expectations" "rg -q '^## Output expectations' agents/flutter-code-reviewer.md"
27+
check "A4 flutter-mobile-release-manager output expectations" "rg -q '^## Output expectations' agents/flutter-mobile-release-manager.md"
28+
29+
# Skills (11)
30+
for skill in skills/*/SKILL.md; do
31+
base="$(basename "$(dirname "${skill}")")"
32+
check "S-${base} has workflow" "rg -q '^## Workflow' '${skill}'"
33+
check "S-${base} has output section" "rg -q '^## (Required output|Output format)' '${skill}'"
34+
done
35+
36+
total=$((pass_count + fail_count))
37+
echo
38+
echo "SUMMARY | total=${total} passed=${pass_count} failed=${fail_count}"
39+
40+
if [ "${fail_count}" -gt 0 ]; then
41+
exit 1
42+
fi

skills/build-flutter-features/SKILL.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ Use this skill for non-test Flutter development tasks.
3232
- Restrict changes to the requested feature/module unless explicitly expanded.
3333
- Do not mix unrelated refactors with feature delivery.
3434

35+
## Required output
36+
37+
1. Goal + scope summary.
38+
2. Files changed by layer (presentation/domain/data).
39+
3. Validation commands run and results.
40+
4. Residual risks or follow-up TODOs.
41+
3542
## Required references
3643

3744
- `../../rules/flutter-development-best-practices.mdc`

skills/integrate-firebase/SKILL.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ Use this skill for end-to-end Firebase integration in Flutter apps.
2929
- Add error handling and fallback behavior for remote dependencies.
3030
- Validate behavior in both debug and release-capable builds.
3131

32+
## Required output
33+
34+
1. Enabled Firebase services and where they are wired.
35+
2. Android/iOS configuration files changed.
36+
3. Validation commands run and runtime checks performed.
37+
4. Known gaps or follow-up production steps.
38+
3239
## Required references
3340

3441
- `../../docs/firebase-integration-checklist.md`

0 commit comments

Comments
 (0)