Skip to content
Guides

Agent Fast Start

Where agents should look first when working inside the ShipItSwifty repo.

This page is a compact navigation guide for coding agents working in the ShipItSwifty repository.

Purpose

  • ShipItSwifty is a Swift 6 release-automation toolkit for iOS and Android.
  • ShipItKit contains the domain logic and machine-facing contracts.
  • shipit is the CLI layer over that library.

Authoritative sources

ConcernSource of truth
Runtime config resolutionSources/ShipItKit/Config/ConfigResolver.swift, Sources/ShipItKit/Config/ResolvedConfig.swift
Shipfile modelSources/ShipItKit/Config/Shipfile.swift
Environment variable mappingSources/ShipItKit/Config/Environment.swift
Built-in action option schemaSources/ShipItKit/Introspection/BuiltInSchemaCatalog.swift
AI-session JSON contractSources/ShipItKit/Introspection/AISessionTypes.swift, Sources/ShipItKit/Introspection/AISessionBuilder.swift
Action behaviorSources/ShipItKit/Actions/<ActionName>.swift
CLI command surfaceSources/CLI/Commands/
Executable behavior specTests/ShipItKitTests/, Tests/CLITests/

Start here by task

TaskStart here
Config resolution bug or featureSources/ShipItKit/Config/ConfigResolver.swift, ResolvedConfig.swift, Environment.swift, Shipfile.swift
Action implementation or regressionSources/ShipItKit/Actions/, matching tests in Tests/ShipItKitTests/
Workflow or custom action behaviorSources/ShipItKit/Actions/WorkflowTypes.swift, CompositeAction.swift, workflow-related tests
Schema or validation driftBuiltInSchemaCatalog.swift, SchemaValidator, ShipfileValidator, related tests
AI-session output driftAISessionTypes.swift, AISessionBuilder.swift, AISessionTests.swift
CLI parsing or output behaviorSources/CLI/Commands/, Tests/CLITests/
Coverage/reporting behaviorSources/ShipItKit/Actions/Coverage.swift, parser helpers, CoverageActionTests.swift
Docs sync workAGENTS.md, docs/features.md, docs/configuration-reference.md, docs/architecture.md

Change impact map

If you change...Also check/update...
An action Options or Result typeBuiltInSchemaCatalog.swift, tests, docs/features.md, AGENTS.md if command guidance changed, AISessionBuilder.swift if agent-facing guidance changed
Shipfile schemaShipfile.swift, BuiltInSchemaCatalog.swift, docs/configuration-reference.md, validation tests
ai session payload shape or semanticsAISessionTypes.swift, AISessionBuilder.swift, docs/architecture.md, AGENTS.md, AISessionTests.swift
CLI command flags or subcommandsSources/CLI/Commands/, AGENTS.md, docs/features.md, CLI tests
Runtime config behaviorConfigResolver.swift, ResolvedConfig.swift, Environment.swift, config tests
Workflow/composite executionWorkflowTypes.swift, CompositeAction.swift, workflow/composite tests
  • Package.swift
  • AGENTS.md
  • Sources/ShipItKit/Config/ConfigResolver.swift
  • Sources/ShipItKit/Config/ResolvedConfig.swift
  • Sources/ShipItKit/Actions/
  • Sources/ShipItKit/Introspection/
  • Tests/ShipItKitTests/

Test results and evidence

Agents driving a project through shipit should read structured results instead of scraping console output. shipit ai session, shipit ai instructions, and shipit ai skills all carry this guidance:

  • Read build/test-runs/<run>/report.json (or the file written by --report-path) and its per-attempt evidence. For saved artifacts, run shipit test-results --input <path> --output json.
  • Results state the runner, buildSystem, and destinations separately, count attempts per test, and mark tests that passed only after a retry as flaky. A green run can still contain flaky tests, so report them.
  • A run with zero results is a failure. Never mark a run green from the exit code alone when the report says otherwise, and never edit a report or its evidence to change an outcome.
  • Two built-in playbooks cover this: shipit ai skills show test-workflows (package, Xcode, Gradle, Flutter, and Jest workflows with reruns, evidence, and CI export) and shipit ai skills show investigate-test-failures (triage from the typed report).

See Test Results & Workflows for the report format.

Validation commands

swift build
swift test --filter ShipItKitTests
swift test --filter CLITests
swift test --enable-code-coverage

Use more targeted filters when the change is localized, for example:

swift test --filter AISessionTests
swift test --filter IntrospectionTests
swift test --filter GenerateProjectActionTests
swift test --filter WorkflowAutoGenerationTests