### Local Development Setup and Run Source: https://github.com/rasimme/flowboard/blob/main/CONTRIBUTING.md Steps to set up the development environment locally, install dependencies, and run the server. Access the application at the specified localhost URL. ```bash git clone https://github.com/YOUR_USERNAME/FlowBoard.git cd FlowBoard # 2. Create a feature branch off dev git checkout dev git pull origin dev git checkout -b feat/my-change # 3. Run locally cd dashboard npm install node server.js # → http://localhost:18790 # 4. Make changes, test, commit git commit -m "feat: my change" # 5. Push and open PR against dev git push origin feat/my-change ``` -------------------------------- ### Install FlowBoard Plugin and Setup Dashboard Source: https://github.com/rasimme/flowboard/blob/main/README.md Installs the FlowBoard plugin and builds the UI, running the dashboard as a per-user service. Requires Node.js >= 18, npm, and OpenClaw >= 2026.6.6. ```bash openclaw plugins install flowboard # wires the project-context hook node scripts/setup.mjs # build the UI + run the dashboard as a per-user service ``` -------------------------------- ### Start Task Workflow Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/commands.md Initiates a task workflow by claiming the next eligible task. Use this instead of the legacy GET /api/tasks + manual claim path. The claimed task will be in 'in-progress' state with a lease. ```bash POST /api/workflows/start { agent, project } ``` -------------------------------- ### Manual FlowBoard Installation Source: https://github.com/rasimme/flowboard/blob/main/README.md Clones the FlowBoard repository, installs dependencies, and builds the dashboard UI. This is an alternative to installing via OpenClaw plugin. ```bash git clone https://github.com/rasimme/FlowBoard.git cd FlowBoard/dashboard npm install npm run build # builds the dashboard UI into dist/ (served by the server) ``` -------------------------------- ### Start Task Workflow Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/commands.md Initiates a task workflow. This endpoint resumes existing in-progress work or claims the next eligible task atomically. It is the primary method for starting work and should be used instead of legacy fallback paths. ```APIDOC ## POST /api/workflows/start ### Description Resumes existing in-progress work for this agent, OR claims the next eligible task atomically. This is the primary method for starting a task workflow. ### Method POST ### Endpoint /api/workflows/start ### Parameters #### Request Body - **agent** (string) - Required - The identifier for the agent. - **project** (string) - Required - The identifier for the project. ### Request Example { "agent": "agent-id-123", "project": "project-name-abc" } ### Response #### Success Response (200) - **task_id** (string) - The ID of the claimed or resumed task. - **status** (string) - The initial status of the task (e.g., "in-progress"). #### Response Example { "task_id": "task-id-xyz", "status": "in-progress" } ``` -------------------------------- ### Setup FlowBoard Dashboard (CLI) Source: https://github.com/rasimme/flowboard/blob/main/README.md Builds the UI and runs the dashboard as a per-user service. Use --dry-run to preview changes without modifying the system. ```bash node scripts/setup.mjs # or: npm run setup node scripts/setup.mjs --dry-run # preview, change nothing ``` -------------------------------- ### Project Overview Response Example Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/overview.md The response to POST /api/projects includes an 'overview' object with details about the suggested preset, rationale, applied status, and mode. ```JSON { preset, rationale, applied, mode } ``` -------------------------------- ### Start Workflow Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/tasks-api.md Resumes agent work or claims the next eligible task atomically. ```APIDOC ## POST /workflows/start ### Description Resumes agent work or claims the next eligible task atomically. ### Method POST ### Endpoint `/workflows/start` ### Request Body - **agent** (string) - Required - Identifier for the agent. - **project** (string) - Required - The project name. - **lease** (object) - Optional - Lease details for claiming tasks. - **resumePolicy** (string) - Optional - Policy for resuming work. ``` -------------------------------- ### Create Project and Get Preset Suggestion Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/overview.md Creates a new project and returns an overview hint suggesting a suitable preset based on the project's initial details. ```APIDOC ## Create Project and Get Preset Suggestion ### Description Creates a new project and returns an overview hint suggesting a suitable preset based on the project's initial details. This is useful for agent or headless callers to automatically apply a preset or for UI to suggest one. ### Method POST ### Endpoint /api/projects ### Response #### Success Response (200) - **overview** (object) - An object containing preset suggestions and rationale. - **preset** (string) - The suggested preset name. - **rationale** (string) - The reason for the suggested preset. - **applied** (boolean) - Indicates if the preset was automatically applied. - **mode** (string) - The mode of application (`auto` or `suggested`). ### Response Example ```json { "overview": { "preset": "default", "rationale": "Standard daily driver layout.", "applied": true, "mode": "auto" } } ``` ``` -------------------------------- ### Project Bootstrap Source: https://github.com/rasimme/flowboard/blob/main/docs/adr/0011-external-agent-discovery.md Fetches the necessary context for a project if one is active. This is used by external agents to get project-specific information. ```APIDOC ## GET /api/projects/{name}/bootstrap ### Description Fetches bootstrap context for a specific project. ### Method GET ### Endpoint /api/projects/{name}/bootstrap ### Parameters #### Path Parameters - **name** (string) - Required - The name of the project. ### Response #### Success Response (200) - **context** (object) - The bootstrap context for the project. ``` -------------------------------- ### Configure FlowBoard Dashboard with Systemd Source: https://github.com/rasimme/flowboard/blob/main/README.md Sets up the FlowBoard dashboard to start automatically on boot using systemd. This involves copying a service template and enabling/starting the service. ```bash cp templates/dashboard.service ~/.local/share/systemd/user/ systemctl --user enable --now dashboard ``` -------------------------------- ### Get Project Overview with Nudge Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/overview.md If a project has gained tasks and is still using the default fallback layout, GET /api/projects/:name/overview may attach an 'overview.nudge' object. ```HTTP GET /api/projects/:name/overview ``` -------------------------------- ### Run Live Registry Canary Source: https://github.com/rasimme/flowboard/blob/main/CONTRIBUTING.md After publishing to ClawHub, run this script to test the installation of the published artifact into a temporary environment. This catches registry and install-path drift. ```bash node scripts/release-install-canary.mjs --clawhub flowboard@x.y.z ``` -------------------------------- ### Start Workflow Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/hzl.md Resumes an agent's in-progress work for a project or claims the next eligible task. ```APIDOC ## POST /api/workflows/start ### Description Resumes an agent's in-progress work for a project or claims the next eligible task. ### Method POST ### Endpoint /api/workflows/start ### Request Body (No specific request body fields documented) ### Response (No specific response fields documented) ``` -------------------------------- ### List Project Files API Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/project-files.md Use this GET request to list files in a project. Include `?includeHidden=true` to see operational files. ```http GET /api/projects/:name/files ``` -------------------------------- ### Overview API Endpoints Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/overview.md These endpoints manage the widget catalog, presets, and grid contract for the project overview. Use GET to retrieve information and PUT to update the layout. ```bash GET /api/overview/widgets → widget catalog + presets + grid contract GET /api/projects/:name/overview → current layout (or the default preset) PUT /api/projects/:name/overview → write a preset name or a full config ``` -------------------------------- ### Headless Migration Script Usage Source: https://github.com/rasimme/flowboard/blob/main/docs/reference/api/migrations.md Command-line examples for using the Node.js script to check migration status or run migrations. The script can target all pending projects or a specified subset. ```bash node dashboard/scripts/migrate-canvas-to-db.mjs # status node dashboard/scripts/migrate-canvas-to-db.mjs --run # migrate all pending node dashboard/scripts/migrate-canvas-to-db.mjs --run --project foo --project bar ``` -------------------------------- ### Get Project Overview with Nudge Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/overview.md Retrieves the overview for a specific project, including a nudge to tailor the dashboard if the project has gained content but has not been manually configured. ```APIDOC ## Get Project Overview with Nudge ### Description Retrieves the overview for a specific project. If the project has tasks but has not been manually configured (still using the default fallback), this endpoint may attach a nudge suggesting a tailored preset. ### Method GET ### Endpoint /api/projects/:name/overview ### Parameters #### Path Parameters - **name** (string) - Required - The name of the project. ### Response #### Success Response (200) - **overview.nudge** (object) - An object containing a suggestion to tailor the dashboard. Appears only when a concrete non-default fit can be offered. - **reason** (string) - The reason for the nudge. - **taskCount** (integer) - The number of tasks in the project. - **suggested** (object) - Details of the suggested preset. - **preset** (string) - The suggested preset name. - **rationale** (string) - The rationale for the suggested preset. ### Response Example ```json { "overview": { "nudge": { "reason": "Project has gained tasks and a non-default preset is suggested.", "taskCount": 15, "suggested": { "preset": "mission", "rationale": "Review desk layout emphasizing blocked items." } } } } ``` ``` -------------------------------- ### Get Agent Status Response Source: https://github.com/rasimme/flowboard/blob/main/docs/reference/api/agents.md Example JSON response for GET /api/status, showing an agent's active project. ```json {"activeProject": "" | null, "agentId": ""} ``` -------------------------------- ### Create Project and Get Overview Hint Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/overview.md When creating a new project via POST /api/projects, the server returns an 'overview' hint indicating the suggested preset, rationale, and application mode. ```HTTP POST /api/projects ``` -------------------------------- ### List Agents Response Source: https://github.com/rasimme/flowboard/blob/main/docs/reference/api/agents.md Example JSON response for the GET /api/agents endpoint, showing a list of active agents and their current projects. ```json { "ok": true, "agents": [ { "agent_id": "alpha-agent","active_project": "flowboard", "activated_at": "2026-04-29T20:09:26.222Z" }, { "agent_id": "main", "active_project": null, "activated_at": "2026-04-15T08:00:00.000Z" }, { "agent_id": "claude-code","active_project": "flowboard", "activated_at": "2026-05-02T22:23:09.339Z" } ] } ``` -------------------------------- ### Minimal Trigger Snippet Example Source: https://github.com/rasimme/flowboard/blob/main/docs/adr/0011-external-agent-discovery.md A markdown block read by external agents at session start, providing essential connection and bootstrapping information. This follows the same minimal-trigger approach as ADR-0005. ```markdown # FlowBoard External Trigger This is a minimal trigger snippet for external agents. ## Connection Details - **FlowBoard URL**: `http://localhost:8080` ## Initial Steps 1. **Check Status**: Before connecting, check the agent status: `GET /api/status?agentId=` 2. **Bootstrap Project**: If a project is active, fetch context: `GET /api/projects//bootstrap` 3. **Load Rules**: Rules are loaded on demand. ## Agent ID Convention Use a stable agent ID for all interactions (e.g., `codex`, `cursor`, `claude-code`, `claude-code-jetson`). ``` -------------------------------- ### Update Status Response Example Source: https://github.com/rasimme/flowboard/blob/main/docs/concepts/app-update.md An example of the JSON response from the /api/update/status endpoint, indicating the status of available updates. ```json { "running": "1.0.0", "installed": "1.1.0", "updateAvailable": true, "selfUpdateEnabled": true } ``` -------------------------------- ### Start FlowBoard Dashboard Server Source: https://github.com/rasimme/flowboard/blob/main/README.md Launches the FlowBoard dashboard server. Migrations run automatically on startup. You can optionally specify custom locations for OpenClaw home and projects directory. ```bash node server.js # Optional custom locations: # OPENCLAW_HOME=/path/to/.openclaw FLOWBOARD_PROJECTS_DIR=/path/to/projects node server.js ``` -------------------------------- ### Build Spawn Prompt with Handoff Package Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/agent-bridge.md Use the `buildSpawnPrompt` function to programmatically construct prompts for agent delegation. It combines a handoff package with custom spawn instructions, ensuring the handoff contract marker is always at the start. ```javascript const hzlService = require('./hzl-service.js'); // Simple: handoff only (no custom instructions) const spawnPrompt = hzlService.buildSpawnPrompt('flowboard', 'T-262-5'); // With custom task instructions const spawnPrompt = hzlService.buildSpawnPrompt( 'flowboard', 'T-262-5', 'Implement the session handoff endpoint and add error handling for invalid project names', { targetAgentId: 'agent-xyz' } ); ``` -------------------------------- ### Get Agent Active Project Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/tasks-api.md Retrieves the active project for a specific agent. ```APIDOC ## GET /status ### Description Active project for agent. ### Method GET ### Endpoint /status ### Query Parameters - **agentId** (string) - Required - The ID of the agent to query for. ### Response #### Success Response (200) - **project** (string) - The ID of the active project for the agent. - **agentId** (string) - The ID of the agent. ``` -------------------------------- ### Get Session Details Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/specify-workflow.md Retrieves detailed information about a specific session by its ID. ```APIDOC ## GET /specify/sessions/:id ### Description Fetches the details of a specific session using its unique identifier. ### Method GET ### Endpoint /specify/sessions/:id ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the session. ``` -------------------------------- ### Create Project Source: https://github.com/rasimme/flowboard/blob/main/docs/reference/api/projects.md Creates a new project with the provided details. ```APIDOC ## POST /api/projects ### Description Create a new project. ### Method POST ### Endpoint /api/projects ### Parameters #### Request Body - **name** (string) - Required - The unique name for the project. - **displayName** (string) - Required - The display name for the project. - **group** (string) - Optional - The group the project belongs to. ### Request Example ```json { "name": "myproject", "displayName": "My Project", "group": "personal" } ``` ### Response #### Success Response (201) - **project** (object) - The created project object. - **warnings** (array) - Optional - An array of warnings, if any. #### Error Response - **400** - Validation error. - **409** - Duplicate name. - **501** - If HZL is not enabled. ``` -------------------------------- ### Preset Configuration for Overview Widgets Source: https://github.com/rasimme/flowboard/blob/main/docs/concepts/overview-widgets.md Allows materializing a curated layout for the overview widget grid using predefined presets. ```json { preset: "default" | "coding" | "knowledge" | "mission" } ``` -------------------------------- ### GET /api/tasks/stuck Source: https://github.com/rasimme/flowboard/blob/main/docs/reference/api/tasks.md Retrieves a cross-project list of tasks that have stale claims or expired leases. ```APIDOC ## GET /api/tasks/stuck ### Description Cross-project list of tasks with stale claims or expired leases. ### Method GET ### Endpoint /api/tasks/stuck ### Query Parameters - **staleThreshold** (minutes) - Optional - Default `10`. ### Response #### Success Response (200) - **ok** (boolean) - Indicates if the request was successful. - **stuck** (object) - Contains lists of stuck tasks. - **stale** (array) - Tasks with stale claims. - **expired** (array) - Tasks with expired leases. - **combined** (array) - A combination of stale and expired tasks. ### Response Example ```json { "ok": true, "stuck": { "stale": [...], "expired": [...], "combined": [...] } } ``` ``` -------------------------------- ### Project Creation Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/tasks-api.md Creates a new canonical project, including FlowBoard metadata and filesystem scaffolding. ```APIDOC ## POST /projects ### Description Canonical project creation path. Creates HZL project + FlowBoard metadata + post-m005 filesystem scaffold. ### Method POST ### Endpoint /projects ### Request Body - **project** (object) - Required - Project details - **agentId** (string) - Required - The ID of the agent creating the project ### Response #### Success Response (201) - **projectId** (string) - The ID of the newly created project - **message** (string) - Confirmation message ``` -------------------------------- ### Get Task Handoff Context Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/tasks-api.md Retrieves the handoff context for a task, used for agent spawning. ```APIDOC ## GET /projects/:name/tasks/:id/handoff ### Description Get handoff context for agent spawning. ### Method GET ### Endpoint /projects/:name/tasks/:id/handoff ``` -------------------------------- ### Per-Repo Installer Script (Node.js) Source: https://github.com/rasimme/flowboard/blob/main/docs/adr/0011-external-agent-discovery.md A Node.js script to fetch the trigger snippet from the FlowBoard API and inject it into a repository's agent configuration file. It uses specific markers for idempotent updates. ```javascript const fs = require('fs'); const path = require('path'); const axios = require('axios'); const FLOWBOARD_API_INFO_URL = 'http://localhost:8080/api/info'; const AGENT_CONFIG_FILE = 'AGENTS.md'; // Or equivalent const MARKER_START = ''; const MARKER_END = ''; async function installTrigger(repoPath) { try { // 1. Fetch trigger snippet from FlowBoard const response = await axios.get(FLOWBOARD_API_INFO_URL); const triggerSnippet = response.data.trigger_snippet; if (!triggerSnippet) { throw new Error('Trigger snippet not found in API response.'); } // 2. Construct the full content to be written const fullContent = `${MARKER_START}\n${triggerSnippet}\n${MARKER_END}`; // 3. Determine the path to the agent config file const configFilePath = path.join(repoPath, AGENT_CONFIG_FILE); // 4. Read existing content, if any let existingContent = ''; if (fs.existsSync(configFilePath)) { existingContent = fs.readFileSync(configFilePath, 'utf-8'); } // 5. Replace or insert the trigger block let newContent; const startIndex = existingContent.indexOf(MARKER_START); const endIndex = existingContent.indexOf(MARKER_END); if (startIndex !== -1 && endIndex !== -1 && startIndex < endIndex) { // Replace existing block newContent = existingContent.substring(0, startIndex) + fullContent + existingContent.substring(endIndex + MARKER_END.length); } else { // Insert new block (append if no markers found) newContent = existingContent + '\n' + fullContent; } // 6. Write the updated content back to the file fs.writeFileSync(configFilePath, newContent, 'utf-8'); console.log(`Successfully installed/updated trigger in ${configFilePath}`); } catch (error) { console.error('Error installing FlowBoard trigger:', error.message); process.exit(1); } } // --- Command Line Argument Parsing --- const args = process.argv.slice(2); const repoIndex = args.indexOf('--repo'); if (repoIndex === -1 || repoIndex + 1 >= args.length) { console.error('Usage: node install-trigger.mjs --repo '); process.exit(1); } const repoPath = args[repoIndex + 1]; installTrigger(repoPath); ``` -------------------------------- ### Workflow Endpoints Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/commands.md Initiates and manages task workflows, including starting new tasks and handoffs. ```APIDOC ## Workflow Endpoints ### Description Provides endpoints for managing task workflows, such as starting new tasks or delegating work. ### Method POST ### Endpoints | Endpoint | Purpose | |-----------------------|-----------------------------------------------| | `/api/workflows/start` | `{ agent, project }` - Resume or claim next task atomically. | | `/api/workflows/handoff`| Transition task to another agent with context. | | `/api/workflows/delegate`| Delegate work to another agent without transferring ownership. | ### Request Example (`/api/workflows/start`) ```json { "agent": "user-id-456", "project": "project-alpha" } ``` ``` -------------------------------- ### Create Project FlowBoard Command Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/commands.md Use this command to create a new project. Note that creation does not automatically activate the project. ```bash FlowBoard: create project X ``` -------------------------------- ### Update Confirmation Body Example Source: https://github.com/rasimme/flowboard/blob/main/docs/concepts/app-update.md The required JSON body for the POST /api/update/run request to confirm the update operation. ```json { "confirmation": "update-confirmed" } ``` -------------------------------- ### GET /api/projects/:name/tasks/:id/handoff Source: https://github.com/rasimme/flowboard/blob/main/docs/reference/api/tasks.md Retrieves handoff context for a specific task, including checkpoints, comments, and events. ```APIDOC ## GET /api/projects/:name/tasks/:id/handoff ### Description Handoff context — bundle of task, recent checkpoints, comments, status events — for spawning a sub-agent or transferring claim ownership. ### Method GET ### Endpoint /api/projects/:name/tasks/:id/handoff ### Parameters #### Path Parameters - **name** (string) - Required - The name of the project. - **id** (string) - Required - The ID of the task. ### Response #### Success Response (200) - **ok** (boolean) - Indicates if the request was successful. - **task** (object) - Details of the task. - **checkpoints** (array) - Recent checkpoints for the task. - **comments** (array) - Comments associated with the task. - **events** (array) - Status events for the task. ### Response Example ```json { "ok": true, "task": {...}, "checkpoints": [...], "comments": [...], "events": [...] } ``` ``` -------------------------------- ### Overview JSON Configuration Schema Source: https://github.com/rasimme/flowboard/blob/main/docs/concepts/overview-widgets.md Defines the structure for the overview.json configuration file, specifying widget placement and properties on a 12-column grid. ```json { version: 1, layout: "grid", widgets: [ { id, type, title?, props?, grid: { x, y, w, h } } ] } ``` -------------------------------- ### GET /api/tasks/notifiable-stuck Source: https://github.com/rasimme/flowboard/blob/main/docs/reference/api/tasks.md Retrieves a cross-project list of stuck tasks that are ready for notification, considering configured notification windows. ```APIDOC ## GET /api/tasks/notifiable-stuck ### Description Cross-project list of stuck tasks that should notify now. Applies the same stale/expired detection as `/api/tasks/stuck`, then suppresses repeat notifications within the configured notification window. ### Method GET ### Endpoint /api/tasks/notifiable-stuck ### Query Parameters - **staleThreshold** (minutes) - Optional - Default `30`. - **notificationWindow** (minutes) - Optional - Time between repeat notifications for the same stuck task. Default `60`. ### Response #### Success Response (200) - **ok** (boolean) - Indicates if the request was successful. - **notifiable** (object) - Contains lists of notifiable stuck tasks. - **stale** (array) - Notifiable tasks with stale claims. - **expired** (array) - Notifiable tasks with expired leases. - **combined** (array) - A combination of notifiable stale and expired tasks. - **appliedThresholds** (object) - The thresholds that were applied for this request. ### Response Example ```json { "ok": true, "notifiable": { "stale": [...], "expired": [...], "combined": [...] }, "appliedThresholds": {...} } ``` ``` -------------------------------- ### GET /api/migrations/canvas/status Source: https://github.com/rasimme/flowboard/blob/main/docs/reference/api/migrations.md Retrieves an overview of migration status across all projects. This endpoint is polled by the dashboard banner on initialization. ```APIDOC ## GET /api/migrations/canvas/status ### Description Migration overview across all projects. Polled by the dashboard banner on init. ### Method GET ### Endpoint /api/migrations/canvas/status ### Response #### Success Response (200) - **pending** (array) - projects with a canvas.json on disk and no canvas_meta.migrated_at flag. Counts are the cleaned counts. - **migrated** (array) - projects served from the DB store. - **conflicts** (array) - DB-migrated projects where a literal canvas.json exists on disk again. - **total** (integer) - pending.length + migrated.length #### Response Example ```json { "pending": [ { "project": "myproject", "displayName": "My Project", "notes": 12, "connections": 7, "bytes": 4096 } ], "migrated": [ { "project": "otherproject", "migratedAt": "2026-06-12T20:11:04.512Z" } ], "conflicts": [ { "project": "thirdproject", "displayName": "Third", "bytes": 2048, "migratedAt": "2026-06-12T20:11:04.512Z" } ], "total": 2 } ``` ``` -------------------------------- ### Check Project Context Hook Registration Source: https://github.com/rasimme/flowboard/blob/main/docs/guide/how-to/troubleshooting.md Verify that the 'project-context' hook is registered with OpenCLAW. If it's missing, re-run the installation step. ```bash openclaw hooks info project-context ``` -------------------------------- ### API Endpoint for Project Overview Configuration Source: https://github.com/rasimme/flowboard/blob/main/docs/concepts/overview-widgets.md Demonstrates the REST API endpoints for retrieving and updating the project overview configuration. ```http GET/PUT /api/projects/:name/overview ``` -------------------------------- ### Get Project Rule Section Source: https://github.com/rasimme/flowboard/blob/main/docs/reference/api/projects.md Retrieves a specific rule section for a given project. The section names are part of the public API. ```APIDOC ## GET /api/projects/:name/rules/:section ### Description Returns a single rule section's markdown. ### Method GET ### Endpoint /api/projects/:name/rules/:section ### Parameters #### Path Parameters - **name** (string) - Required - The name of the project. - **section** (string) - Required - The name of the rule section to retrieve. ### Response #### Success Response (200) - **text/markdown** - The content of the rule section. #### Error Response (404) Returned if the section name is unknown. ``` -------------------------------- ### Create a New Project with FlowBoard Source: https://github.com/rasimme/flowboard/blob/main/README.md Issues an explicit FlowBoard command in the agent chat to create a new project. This action registers the project in FlowBoard metadata and uses the Tasks API for operational state. ```bash > FlowBoard: create project my-app ``` -------------------------------- ### Activate Project FlowBoard Command Source: https://github.com/rasimme/flowboard/blob/main/docs/project-mode/commands.md Use this command to activate a project. It involves a PUT request to update status, followed by a GET request for verification. Polling is used if the project context is not immediately ready. ```bash FlowBoard: activate project X ``` -------------------------------- ### Update Agent Status Response Source: https://github.com/rasimme/flowboard/blob/main/docs/reference/api/agents.md Example JSON response for PUT /api/status after successfully setting or clearing an agent's active project. ```json {"ok": true, "activeProject": "" | null, "agentId": ""} ``` -------------------------------- ### Agent Deletion Conflict Response Source: https://github.com/rasimme/flowboard/blob/main/docs/reference/api/agents.md Example JSON response for DELETE /api/agents/:id when the agent has active claims and force deletion is not used. ```json { "error": "Agent has 3 active claim(s)", "claimCount": 3, "claims": [{"project": "flowboard", "id": "T-197-7", "title": "..."}], "hint": "Pass ?force=true to release claims and delete, or release them manually first" } ```