プランの登録・管理
Nolto の中心的な概念は プラン(Plan)です。プランは AI 開発ツールが生成した実装計画(Markdown 形式)を表し、登録すると LLM が自動的に日本語のビジネスサマリに変換します。
プランの登録
REST API で登録する
curl -X POST \
-H "Authorization: Bearer $VIDOCS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"plan": {
"title": "決済機能の実装",
"content": "## 概要\nStripe Checkout を導入する...",
"status": "not_started",
"phases": [
{
"title": "Stripe SDK のセットアップ",
"content": "npm install @stripe/stripe-js ...",
"status": "not_started"
},
{
"title": "Checkout セッションの実装",
"content": "サーバーサイドで checkout.sessions.create を呼び出す...",
"status": "not_started"
}
]
},
"source": {
"kind": "api"
},
"git": {
"userName": "tanaka",
"userEmail": "tanaka@example.com"
}
}' \
"https://nolto.app/api/projects/$PROJECT_ID/plans"
MCP で登録する
Claude Code や Codex からは、register_plan ツールで同じ操作を行えます:
> このプランを Nolto に登録して
MCP 経由の場合、projectId を省略すると デフォルトプロジェクト が使われます。
リクエストスキーマ
plan(必須)
| フィールド | 型 | 必須 | 制限 | 説明 |
|---|---|---|---|---|
title | string | Yes | 1〜500文字 | プランのタイトル |
content | string | Yes | 1〜50,000文字 | プランの本文(Markdown) |
status | string | No | enum | 初期ステータス(デフォルト: not_started) |
phases | array | No | 最大50件 | フェーズ(サブタスク)のリスト |
plannedStartAt | string | No | ISO 8601 | 予定開始日時 |
plannedEndAt | string | No | ISO 8601 | 予定終了日時 |
phases[]
| フィールド | 型 | 必須 | 制限 | 説明 |
|---|---|---|---|---|
title | string | Yes | 1〜500文字 | フェーズのタイトル |
content | string | Yes | 1〜20,000文字 | フェーズの詳細 |
status | string | No | enum | 初期ステータス(デフォルト: not_started) |
plannedStartAt | string | No | ISO 8601 | 予定開始日時 |
plannedEndAt | string | No | ISO 8601 | 予定終了日時 |
source(任意)
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
kind | string | No | "file" / "api" / "mcp" / "manual"(デフォルト: "api") |
path | string | No | ファイルパス(最大1,024文字) |
url | string | No | URL(最大2,048文字) |
hash | string | No | コンテンツハッシュ(最大128文字、重複検出用) |
git(任意)
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
userName | string | No | Git ユーザー名(最大255文字) |
userEmail | string | No | Git メールアドレス(最大320文字) |
レスポンス
{
"planId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"transformStatus": "queued",
"detailUrl": "https://nolto.app/projects/.../plans/..."
}
LLM Transform パイプライン
プランを登録すると、バックグラウンドで LLM による変換ジョブがキューに入ります。
処理の流れ
- プランが登録される →
transformStatus: "queued" - バックグラウンドワーカーがジョブを取得して処理
- 技術的な実装プランが 日本語のビジネスサマリ に変換される
- 結果がプランの
display_title、display_summary、display_bodyに保存される
出力構造(ReadablePlan)
LLM が生成する構造化データ:
| フィールド | 説明 |
|---|---|
displayTitle | ビジネス向けのプランタイトル |
summary | 1〜2文の要約 |
background | プランの背景・経緯 |
goal | 達成すべき目標 |
tasks | 主要タスクのリスト |
impact | ビジネスへの影響 |
reviewPoints | レビュー時の確認ポイント |
risks | リスクと懸念事項 |
phases[].displayTitle | 各フェーズのビジネス向けタイトル |
phases[].summary | 各フェーズの要約 |
再変換
変換結果を更新したい場合は、再変換をリクエストできます:
curl -X POST \
-H "Authorization: Bearer $VIDOCS_TOKEN" \
"https://nolto.app/api/projects/$PROJECT_ID/plans/$PLAN_ID/retransform"
再変換は月間の変換クォータを 1 回分消費します。
残りのクォータは GET /api/usage で確認できます。
詳しくは レート制限・Tier を参照してください。
ステータス管理
プランのステータス
| ステータス | 日本語 | 説明 |
|---|---|---|
not_started | 未着手 | まだ作業を始めていない |
in_progress | 進行中 | 現在作業中 |
done | 完了 | 完了した |
discarded | 破棄 | 進めないことにした |
許可される遷移
not_started ──→ in_progress ──→ done
│ │ │
│ ↓ │
│ not_started │
│ │ │
↓ ↓ ↓
discarded ←──── discarded in_progress
│
↓
not_started
not_started→in_progress,discardedin_progress→done,discarded,not_starteddone→in_progress(再開)discarded→not_started(復活)
ステータスを更新する
REST API:
curl -X POST \
-H "Authorization: Bearer $VIDOCS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status": "done", "message": "全タスク完了"}' \
"https://nolto.app/api/projects/$PROJECT_ID/plans/$PLAN_ID/status"
MCP:
> このプランのステータスを完了にして
フェーズのステータスと親プランの自動派生
フェーズのステータスを更新すると、親プランのステータスが 自動的に派生 されます:
| フェーズの状態 | 派生される親プランのステータス |
|---|---|
全フェーズが discarded | discarded |
discarded 以外の全フェーズが done | done |
いずれかのフェーズが in_progress | in_progress |
| 上記以外 | not_started |
curl -X POST \
-H "Authorization: Bearer $VIDOCS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status": "done"}' \
"https://nolto.app/api/projects/$PROJECT_ID/plans/$PLAN_ID/phases/$PHASE_ID/status"
アサイニー(担当者)
プランに担当者を設定できます。担当者はプロジェクトメンバーである必要があります。
# 担当者を設定
curl -X POST \
-H "Authorization: Bearer $VIDOCS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"userId": "user-uuid-here"}' \
"https://nolto.app/api/projects/$PROJECT_ID/plans/$PLAN_ID/assignee"
# 担当者をクリア
curl -X POST \
-H "Authorization: Bearer $VIDOCS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"userId": null}' \
"https://nolto.app/api/projects/$PROJECT_ID/plans/$PLAN_ID/assignee"
プラン登録時に git.userEmail を指定すると、そのメールアドレスに一致する Nolto ユーザーが自動的にコントリビューターとして紐づきます。