Skip to main content
Glama

App Scaffold

app_scaffold

Scaffold a new SwiftUI app from app.spec.json, including Xcode project, pipeline manifest, and local git repo. Use after idea validation.

Instructions

Scaffold a new SwiftUI app from app.spec.json (xcodegen), init the pipeline manifest and a local git repo.

Use when: starting a new app after idea validation. The spec drives products, StoreKit file, locales, onboarding length, monetization mode and backend mode. Not for: editing an existing app (use app_sync_spec after changing the spec). Returns: {ok, dir, name, bundle_id, manifest}.

Input Schema

NameRequiredDescriptionDefault
nameNoApp name, e.g. 'PetPortrait'; used for the folder and target.
specNoFull app.spec.json as a dict, a dict of overrides on the defaults, or a path to an app.spec.json file.
dest_dirNoDirectory to create the app folder in; omit for the default apps directory.
bundle_idNoApp bundle identifier in reverse-DNS form, e.g. com.example.app.
display_nameNoName shown under the app icon; defaults to name.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.1.5
    • addedInput schema / properties / bundle_id / description
      Added value: +"App bundle identifier in reverse-DNS form, e.g. com.example.app."
    • addedInput schema / properties / dest_dir / description
      Added value: +"Directory to create the app folder in; omit for the default apps directory."
    • addedInput schema / properties / display_name / description
      Added value: +"Name shown under the app icon; defaults to name."
    • addedInput schema / properties / name / description
      Added value: +"App name, e.g. 'PetPortrait'; used for the folder and target."
    • addedInput schema / properties / spec / description
      Added value: +"Full app.spec.json as a dict, a dict of overrides on the defaults, or a path to an app.spec.json file."
  2. First observedv0.1.1

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuine side-effect context beyond the annotations: it initializes a pipeline manifest and a local git repo, and notes the spec drives StoreKit, locales, onboarding and monetization/backend modes. It does not state failure behavior on re-run or auth prerequisites, so not a full 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded blocks (action, use-when/not-for, returns) with no filler. The returns line is brief and, although an output schema exists, it costs little and improves scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description still summarizes them. Purpose, trigger, alternative and side effects are all covered, leaving only minor gaps such as behavior when the destination already exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description goes further by enumerating what the 'spec' parameter drives (products, StoreKit file, locales, onboarding length, monetization and backend mode), which the schema does not explain, adding real meaning to the most important parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Scaffold a new SwiftUI app from app.spec.json') plus the concrete mechanisms involved (xcodegen, pipeline manifest, local git repo). It also names the sibling it is not (app_sync_spec), so an agent can distinguish it from adjacent tools without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'Use when: starting a new app after idea validation' gives the trigger, and 'Not for: editing an existing app (use app_sync_spec after changing the spec)' names both the exclusion and the correct alternative. This is exactly the when/when-not/alternative structure.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools