← capabilitiesprojects.write

start_project

projects.start_project · v0.1.0

Kick off a new client engagement from a structured brief.

Semantics

Creates a project under a (new or existing) client contact. Seeds milestones and initial tasks from the provider's business-type template (e.g. a design studio gets `kickoff → discovery → design → review → handover`). The returned project_id is the addressable handle for follow-up tools (`list_tasks`, `add_comment`, etc.).

Invariants

  • If a client with the same email exists on this tenant, it is reused.
  • The project is created in status `planning`. State transitions are owner-driven.
  • Default milestones and tasks come from the provider's `business_type` setting; an agent can later add custom tasks via `create_task`.

When to use

When the user has decided to engage with a provider and wants to formalise the engagement. Different from `submit_request` (LeadKit) — that's pre-decision; `start_project` is post-decision and creates a project shell.

Input schema

{
  "type": "object",
  "required": [
    "client_name",
    "client_email",
    "title",
    "brief"
  ],
  "properties": {
    "brief": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 1
    },
    "title": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1
    },
    "client_name": {
      "type": "string",
      "minLength": 1
    },
    "target_date": {
      "type": "string",
      "format": "date"
    },
    "agent_vendor": {
      "type": "string"
    },
    "client_email": {
      "type": "string",
      "format": "email"
    },
    "client_phone": {
      "type": "string"
    },
    "client_company": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Output schema

{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "error": {
      "enum": [
        "invalid_email",
        "invalid_input",
        "tenant_not_found"
      ],
      "type": "string"
    },
    "client_id": {
      "type": "string"
    },
    "portal_url": {
      "type": "string",
      "format": "uri"
    },
    "project_id": {
      "type": "string"
    },
    "tasks_seeded": {
      "type": "number"
    },
    "milestones_seeded": {
      "type": "number"
    }
  }
}

Recent conformance runs

passprovidertestmswhen
projectkit:switchback-engineeringrejects_invalid_email005-18 19:53
projectkit:switchback-engineeringhappy_path73005-18 19:53
projectkit:driftline-designrejects_invalid_email005-18 19:53
projectkit:driftline-designhappy_path76705-18 19:53
projectkit:atelier-meridianrejects_invalid_email105-18 19:53
projectkit:atelier-meridianhappy_path153205-18 19:53