agentic-football-coach/kiro-football-coach/.kiro/skills/football-strategy/SKILL.md
Activate when discussing strategy, tactics, or agent behavior design
npx skillsauth add aws-samples/sample-ai-possibilities football-strategyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Strategies and tactical concepts for programming smarter football agents. Each strategy includes agent-behavior mappings that translate directly to code decisions.
Goal: Keep the ball, tire out opponents, wait for the perfect opening.
| Aspect | Detail | |--------|--------| | Style | Many short passes, patient build-up | | Tempo | Slow, controlled | | Risk | Low — fewer turnovers | | Best When | Leading, or opponent presses aggressively |
Agent-Behavior Mapping:
SHORT_PASS over LONG_PASS — higher accuracy, lower turnover riskDRIBBLE only in safe zones (own half, no nearby opponents)WALK and RUN, avoid SPRINTif no_safe_forward_pass:
pass_backward_or_sideways()
else:
short_pass_to_best_positioned_teammate()
Goal: Defend deep, win the ball, then attack quickly with speed.
| Aspect | Detail | |--------|--------| | Style | Direct, fast transitions from defense to attack | | Tempo | Slow in defense, explosive in attack | | Risk | Medium — relies on speed and timing | | Best When | Opponent dominates possession, you have fast forwards |
Agent-Behavior Mapping:
MARK and INTERCEPT in own half, stay compactLONG_PASS or THROUGH_PASS to forwardsSPRINT into space behind opponent defense on transitionRUN forward to support the attackif just_won_ball:
long_pass_to_forward_in_space()
forwards.sprint_toward_goal()
Goal: Pressure opponents immediately, win the ball in their half.
| Aspect | Detail | |--------|--------| | Style | Aggressive, high defensive line | | Tempo | Fast, intense | | Risk | High — leaves space behind if beaten | | Best When | Losing, need to force turnovers, high team stamina |
Agent-Behavior Mapping:
TACKLE and INTERCEPT aggressively in attacking thirdSPRINT to close down ball carrier quicklyRUN back immediately to recoverif opponent_has_ball and ball_in_opponent_half:
nearest_player.sprint_to_ball_carrier()
teammates.cut_passing_lanes()
Goal: Attack down the flanks, cross into the box.
| Aspect | Detail | |--------|--------| | Style | Wide positioning, crosses into penalty area | | Tempo | Medium to fast | | Risk | Medium — crosses can be intercepted | | Best When | You have strong headers, opponent is narrow |
Agent-Behavior Mapping:
RUN along sidelines, stretch the defenseDRIBBLE down the wing to create crossing opportunitiesCROSS into the penalty box when in advanced wide positionsRUN into the box to meet crosses, use HEADERSHORT_PASS to switch play from one wing to the otherif wide_player_has_ball and in_crossing_zone:
cross_to_penalty_box()
central_players.run_into_box()
Goal: Each player defends a specific area, maintain team shape.
| Aspect | Detail | |--------|--------| | Style | Area-based, structured | | Weakness | Gaps between zones if spacing is poor | | Best When | Default defensive setup, balanced approach |
Agent-Behavior Mapping:
STOP or WALK to hold position within assigned zoneINTERCEPT passes that enter your zoneTACKLE only when opponent enters your zone with the ballif ball_in_my_zone:
move_toward_ball()
if opponent_has_ball_in_zone:
tackle()
else:
hold_zone_position()
Goal: Each defender tracks a specific opponent closely.
| Aspect | Detail | |--------|--------| | Style | Player-based, tight coverage | | Weakness | Can be pulled out of position by decoy runs | | Best When | Opponent has a star player to neutralize |
Agent-Behavior Mapping:
MARK action to follow assigned opponentRUN, you RUNTACKLE when your assigned opponent receives the ballif assigned_opponent_has_ball:
tackle()
elif assigned_opponent_moving:
mark(assigned_opponent_id)
match_opponent_speed()
Goal: Keep all players close together, deny space.
| Aspect | Detail | |--------|--------| | Style | Tight formation, narrow shape | | Weakness | Vulnerable to wide play and crosses | | Best When | Protecting a lead, opponent plays through the middle |
Agent-Behavior Mapping:
WALK to maintain formation — minimize gaps between playersINTERCEPT passes in congested areas (high success rate)if ball_on_left_side:
shift_formation_left()
maintain_tight_spacing()
elif ball_on_right_side:
shift_formation_right()
maintain_tight_spacing()
Goal: Catch attackers offside by moving defenders forward together.
| Aspect | Detail | |--------|--------| | Style | Synchronized defensive line movement | | Weakness | Devastating if mistimed — attacker is through on goal | | Risk | Very high — requires perfect coordination | | Best When | Opponent relies on through balls, your defenders are fast |
Agent-Behavior Mapping:
RUN forward as a unit just before the pass is madeSPRINT back immediatelyif opponent_preparing_through_pass:
all_defenders.run_forward_together()
if trap_failed:
nearest_defender.sprint_back()
Your agent must decide what to do with the ball every tick. Use this decision tree:
| Situation | Recommended Action | Reasoning |
|-----------|-------------------|-----------|
| Close to goal, clear shot | SHOOT | Best scoring opportunity |
| Under pressure, teammate open | SHORT_PASS | Relieve pressure, keep possession |
| Teammate making a run behind defense | THROUGH_PASS | Exploit space, create chance |
| Wide position, teammates in box | CROSS | Deliver ball to scoring zone |
| No good options, safe area | DRIBBLE | Buy time, wait for movement |
| Need to switch play quickly | LONG_PASS | Change point of attack |
Priority order: Shoot → Through Pass → Short Pass → Cross → Dribble → Long Pass
What your agent does without the ball is just as important as what it does with it.
Making Runs:
RUN or SPRINT into space, signal availabilityCreating Space:
RUN away from the ball to drag a markerSupporting the Ball Carrier:
WALK or RUN to maintain optimal passing distancePassing Triangles:
Overlapping Runs:
Switching Play:
LONG_PASS to switch quicklyAdapt strategy based on the current match situation:
| Game State | Strategy Adjustment | |------------|-------------------| | Winning by 2+ goals | Possession play, conserve stamina, waste time | | Winning by 1 goal | Balanced, protect lead but stay dangerous | | Drawing | Look for opportunities, balanced risk | | Losing by 1 goal | Push higher, take more shots, increase tempo | | Losing by 2+ goals | High press, maximum aggression, all-out attack | | Last 30 seconds, winning | All players defend, clear the ball | | Last 30 seconds, losing | Everyone forward, goalkeeper too if desperate |
if score_difference >= 2:
strategy = "possession_conserve"
elif score_difference == 1:
strategy = "balanced_protect"
elif score_difference == 0:
strategy = "balanced_opportunistic"
elif score_difference == -1:
strategy = "aggressive_push"
else:
strategy = "all_out_attack"
Stamina is a finite resource. Poor management means your players slow down in critical moments.
Sprint Wisely:
SPRINT for critical moments: breakaways, last-ditch defense, final minutesRUN for normal movement, WALK when not under pressureRotation:
Positioning Over Running:
| Stamina Level | Recommended Behavior | |---------------|---------------------| | 80-100% | Full intensity, sprint when needed | | 50-79% | Moderate, prefer RUN over SPRINT | | 30-49% | Conservative, mostly WALK and RUN | | Below 30% | Minimal movement, hold position, WALK only |
Effective agents don't use a single strategy — they adapt. Consider a hybrid approach:
The best agents read the game state every tick and adjust their strategy dynamically.
content-reference/en/strategies.md for full detaildevelopment
Activate when the user chooses Strands or asks about Strands SDK concepts
development
Activate when the user chooses LangGraph or asks about LangChain/ReAct patterns
development
Activate when discussing game rules, player actions, scoring, fouls, cards, or match format
tools
Activate when discussing deployment, AgentCore CLI, or production infrastructure