Update all documentation (#718)
* add AGENTS/CLAUDE.md file to docs/
* collapse supported coding agents (vibe-kanban 52fd2ae6)
docs/AGENTS.md
docs/docs.json
We have a section in the docs denoted 'Supported Coding Agents' but we don't need a separate sub page for each one, we can combine it into a single page.
* docs multiple dev servers (vibe-kanban 3e3a6195)
"At the moment only one dev server can be running for each project, so if you start one it will kill any that are already running."
This sentence in the docs is no longer true and should be removed
* docs update: reviewing code changes (vibe-kanban e3b5db87)
docs/AGENTS.md
docs/docs.json
Introduce a new page in the user guide that covers code review. After a task has completed, it will enter the 'in review' column. From there, the user can open the task in full screen and press on the 'Diff' tab to see each changed file in split or unified view. We also support attaching a review comment to a line by clicking on the plus icon at the start of the line. You can create several comments across files and even extend the review with general comments in the task chat field before submitting the review. It is turned into a single message for the coding agent to address.
* Document VS Code Extension Features (vibe-kanban e88b4bb9)
Create a comprehensive user guide page documenting the VS Code extension integration. It works with VSCode and forks of VSCode such as Cursor, Windsurf.
The IDE extension embeds the Logs, Diffs. and Processes view for a current task. It also has a text box to create new task attempts. After installing the extension, the easiest way to use it is by starting a task, opening it, in full screen mode, then pressing the 'Open in (VSCode/Cursor/Windsurf)' button. For troubleshooting, if you open your IDE but not in one of the worktrees created by a vibe kanban task, the extension UI will be empty because it won't find the associated task.
VSCode install link: https://marketplace.visualstudio.com/items?itemName=bloop.vibe-kanban
Cursor/Windsurf: https://open-vsx.org/extension/bloop/vibe-kanban
Id: bloop.vibe-kanban, users can search @id:bloop.vibe-kanban in any of the IDEs to find the extension. It's easiest to search the id if using Cursor/Windsurf as deeplinking from open vsx doesn't work.
* remove /docs prefix from internal links
* hackathon docs banner (vibe-kanban ce53b989)
<guide>
# Banner
> Add a banner to display important site-wide announcements and notifications
Use banners to display important announcements, updates, or notifications across your entire documentation site. Banners appear at the top of every page, support Markdown formatting, and can be made dismissible.
To add a banner, use the `banner` property in your `docs.json`:
<CodeGroup>
```json Product announcements wrap
"banner": {
"content": "🚀 Version 2.0 is now live! See our [changelog](/changelog) for details.",
"dismissible": true
}
```
```json Maintenance notices wrap
"banner": {
"content": "⚠️ Scheduled maintenance: API will be unavailable December 15, 2-4 AM UTC",
"dismissible": false
}
```
```json Required actions wrap
"banner": {
"content": "**Action required:** Migrate to our new version by January 1. [Migration guide](/migration)",
"dismissible": true
}
```
</CodeGroup>
## Properties
<ResponseField name="content" type="string" required>
The banner message. Supports plain text and Markdown formatting.
</ResponseField>
<ResponseField name="dismissible" type="boolean">
Whether users can dismiss the banner. When `true`, users can close the banner and it won't reappear for their session. Defaults to `false`.
</ResponseField>
</guide>
We are hosting a hackathon in London on the 20th of September, so create a site-wide banner advertising this.
* update mcp server docs (vibe-kanban 94754ae1)
Update the documentation on the MCP server.
We have an existing page describing how it works, but it needs a bit of clarification because MCP support comes in two forms for us. Firstly, you can configure the MCP servers accessible to the coding agents you use within our product. And secondly, our product itself exposes an MCP server for other MCP clients to connect to, such as Claude Desktop, Raycast, or a coding agent that you're using either within Vive Kanban or outside Vive Kanban.
Our MCP server is a local MCP server as opposed to a remote MCP server and this means you can connect to it through apps that you've installed on your computer but you can't connect to clients that expect a publicly accessible URL.
The vibe-kanban-mcp-server docs page is exclusively focused on the MCP server that we expose but we should clarify this for users. This means we'll need a new page that focuses on the MCP Server configuration page that we have inside the app. And this is the page that lets users choose the MCP servers connected to each of the coding agents supported within Vibe Kanban. We also have a one-click installation feature for popular servers. such as, these are Context7 and Playwright.
# Update Media
Replace the main screenshot with /Users/britannio/Downloads/vk-mcp-server-config.jpeg by copying it into the project. This screenshot is taken from the MCP server's settings page and it's useful to show how we can add the Vibe Kanban MCP server to a coding agent that we're using within Vibe Kanban. We will also use this screenshot on the new page we're creating to show MCP server configuration, just to convey that you can bring your own MCP server or use one of our one-click installation popular servers for your coding agents.
/Users/britannio/Downloads/vk-raycast-mcp-part-2.png /Users/britannio/Downloads/vk-raycast-mcp-part-1.png
These screenshots are screenshots of the macOS Raycast app and they show you how you can configure the MCP server with it. Raycast is a popular MCP client just like Claude Desktop but many others are supported too.
* docs: creating task attempts - mintlify rules (vibe-kanban 2b54caea)
docs/user-guide/creating-task-attempts.mdx
Apply the Mintlify technical writing rules to this page.
* use british english in mintlify technical writing rule
* docs: agent configurations - mintlify rules (vibe-kanban 8e7d82ec)
docs/user-guide/agent-configurations.mdx
Apply the Mintlify technical writing rules to this page
* docs: creating projects (vibe-kanban 95cd181a)
docs/user-guide/creating-projects.mdx
Copy /Users/britannio/Downloads/vk-create-project.jpeg and use it as the screenshot
When the Create Project button is pressed, you have two options, either to create from an existing git repository or to create from a blank project. If you choose the former, then we will search your file system and show you a sorted list of git repositories that we find where the top project is the one that was most recently active.
In project settings, we not only let you control setup scripts, dev server scripts, and cleanup scripts, but we also let you specify a comma separated list of 'copy files'. And these are files like environment variables or other data that isn't tracked by git that you want to be present in the work tree created by every new task. Put this 'Copy Files' section above cleanup scripts.
How the codebase describes copy files: "Comma-separated list of files to copy from the original project directory to the worktree. These files will be copied after the worktree is created but before the setup script runs. Useful for environment-specific files like .env, configuration files, and local settings. Make sure these are gitignored or they could get committed!"
Since this page was created, we've changed the setup flow. So instead of configuring project settings during project creation, it's done afterwards. So once a user has created a project, they need to explicitly press the settings button in the top right to configure these scripts. As a result of this, it would be sensible to move all of the sections on project settings (git, setup scripts, etc) into a heading titled project settings.
From these project settings, you can also configure project task templates and we have more details about this in a subsection of a different page here: /user-guide/creating-task-templates#project-task-templates
* docs: getting started - minitlify (vibe-kanban 37318053)
{
"group": "Getting started",
"pages": ["index", "getting-started", "onboarding", "global-settings"]
},
Apply the Mintlify technical writing rules to these pages.
Additionally:
```
---
title: ""
description: ""
sidebarTitle: ""
---
```
These docs pages should have a title and description by including this block at the very top of the mdx file.
If the `title` attribute is equivalent to the first header, the header is redundant and can be removed.
sidebarTitle is optional and can be used if the main title os too verbose. The sidebar title should typically be two to three words.
* update creating projects text
* docs: creating tasks - mintlify (vibe-kanban a274f135)
docs/user-guide/creating-tasks.mdx
Apply the Mintlify technical writing rules to this page
* docs: creating task templates - mintlify (vibe-kanban 90f075a7)
docs/user-guide/creating-task-templates.mdx
Apply the Mintlify technical writing rules to this page
* update page title
* docs: keyboard shortcuts (vibe-kanban 8f39c2d0)
use the oracle to explore the codebase and learn how this feature works
add a new docs page covering each shortcut of significance (e.g. esc isn't significant)
* docs: task full screen mode (vibe-kanban a7e097dc)
Task details full screen mode: dev server, rebase, merge, subtask, new attempt, logs, diffs, processes.
Create a new docs page for this full scree mode explaining everything that can be done. Link to other docs for depth on each feature where appropriate.
use the oracle to explore the codebase and learn how this feature works
* docs: github features (vibe-kanban 29aa8f79)
add a docs page describing the features enabled by connecting to Github. Determine which screenshots will be needed and use placeholders for them until I give them to you.
use the oracle to explore the codebase and learn how this feature works
* docs: subtasks (vibe-kanban e038c1ad)
create a docs page for the subtask feature. Leave placeholders for screenshots: we need one for the full screen task view where you can see the button, one for viewing a task with subtasks, and one for viewing a subtask in full screen where it shows its parent task.
use the oracle to explore the codebase and learn how this feature works
* update subtask title
* docs: task templates (vibe-kanban 690b1933)
/Users/britannio/Downloads/vk-task-templates.png
/Users/britannio/Downloads/vk-proj-task-templates.png
Use these updated images in docs/user-guide/creating-task-templates.mdx
* docs: creating tasks screenshots (vibe-kanban 20f70e4f)
docs/user-guide/creating-tasks.mdx
/Users/britannio/Downloads/vk-create-task.png /Users/britannio/Downloads/vk-starting-task-attempt.png /Users/britannio/Downloads/vk-task-template.png
use these as the new screenshots
* docs: onboarding (vibe-kanban 631427c5)
docs/getting-started.mdx
docs/onboarding.mdx
In the documentation, we have an installation page and an onboarding page. But the onboarding page is a bit misleading because what actually happens when you set up the project and run the npx command for the first time is it will open the app and you'll see the projects page. There won't be any projects, so you'll have the chance to create your first project and create your first task. And then if you want to connect to GitHub, you have to manually go to settings and connect that. There isn't actually any encouragement for the user to do any of this. So, review those two pages and review the code base to double check that my understanding of the current onboarding flow is correct. And then update the documentation accordingly. We may not need the onboarding page at all if it's not relevant.
* docs: creating tasks (vibe-kanban 0eb62591)
docs/user-guide/creating-tasks.mdx
We should mention that tasks can be created by a coding agent or by an MCP client such as Claude Desktop or Raycast and then linked to the Vibe Kanban MCP server documentation. This isn't the expected use case for creating tasks but it can be useful for creating tasks in bulk based on existing data that you have or migrating tasks from a different system such as Linear, Github Issues
Conform to the mintlify technical writing rules.
* docs: settings (vibe-kanban 579e1663)
docs/global-settings.mdx
Use this screenshot instaed of screenshot-global-settings.png: /Users/britannio/Downloads/vk-settings.png
Don't change anything else.
* update creating tasks docs (vibe-kanban 140820a6)
docs/user-guide/creating-tasks.mdx
"After creating a project, add tasks by clicking the Add Task button in the navigation section of your project kanban page. Creating a task adds it to your kanban board without automatically starting a coding agent."
The button isn't an 'add task' button, it's a plus icon in the top right. You can also use the shortcut `c`.
* docs: creating task attempts (vibe-kanban fb8c5ad4)
docs/user-guide/creating-task-attempts.mdx
Review what is described in this documentation versus how it actually works in the frontend. For example, the previous documentation about the task attempt toolbar actions doesn't appear to hold anymore because the UI has changed. And the buttons in the image that it refers to are now only visible when viewing a task in full screen. And we have documentation on full screen mode. So that's an opportunity to backlink.
* update docs agents.md file
* Review and Harmonise All Documentation (vibe-kanban 7194a113)
Comprehensive review of all documentation pages to ensure:
- Consistent flow and navigation between pages
- Elimination of unnecessary information duplication
- Proper cross-referencing between related topics
- Consistent terminology and style
- Logical information architecture
- Updated navigation and table of contents
- Ensure docs conform to the mintlify technical rules, lean towards making smaller tweaks rather than larger rewrites as the content is already in a good state.
Deliverables:
- Updated navigation structure in docs.json
- Revised cross-references between pages
- Consolidated duplicate information
- Style and terminology consistency report
- Updated index and getting started pages to reflect new content
Location: Review all files in `/docs/` directory
* update image (vibe-kanban d0dcf34d)
docs/user-guide/creating-projects.mdx
/Users/britannio/Downloads/vk-create-proj.png
This is the new screenshot to use for the creating projects documentation. Just copy it and delete the old one.
* docs: delete unused images (vibe-kanban b8fdd325)
Find all unused images in the docs folder and remove them.
* remove review report
* move docs around (vibe-kanban 5ca2e108)
In the docs folder, we have a single subfolder called User Guide. But if you read docs.json, you'll see we now have four different sections of the documentation. I think the first section, being Getting Started, doesn't need its own folder, so the docs inside it can remain top level. But for all of the other sections, they should have their own folder named appropriately.
* update mintlify docs
* rename settings
* bring back ccr images (vibe-kanban 82c0f5d7)
Commit 1db2e0113e introduced claude code router images and setup instructions. Bring it back inside docs/supported-coding-agents.mdx including the images.
* docs deadlink (vibe-kanban b033ffaa)
core-features/task-details-full-screen#subtasks the subtasks link in this section is incorrect. Fix it and fix all other broken docs links.
@@ -24,7 +24,7 @@
|
||||
"vibe_kanban": {
|
||||
"name": "Vibe Kanban",
|
||||
"description": "Create, update and delete Vibe Kanban tasks",
|
||||
"url": "https://www.vibekanban.com/docs/user-guide/vibe-kanban-mcp-server",
|
||||
"url": "https://www.vibekanban.com/docs/integrations/vibe-kanban-mcp-server",
|
||||
"icon": "viba-kanban-favicon.png"
|
||||
},
|
||||
"context7": {
|
||||
|
||||
@@ -1,30 +1,16 @@
|
||||
---
|
||||
title: "Cursor setup"
|
||||
description: "Configure Cursor for your documentation workflow"
|
||||
icon: "arrow-pointer"
|
||||
---
|
||||
|
||||
Use Cursor to help write and maintain your documentation. This guide shows how to configure Cursor for better results on technical writing tasks and using Mintlify components.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Cursor editor installed
|
||||
- Access to your documentation repository
|
||||
|
||||
## Project rules
|
||||
|
||||
Create project rules that all team members can use. In your documentation repository root:
|
||||
|
||||
```bash
|
||||
mkdir -p .cursor
|
||||
```
|
||||
|
||||
Create `.cursor/rules.md`:
|
||||
|
||||
````markdown
|
||||
# Mintlify technical writing rule
|
||||
|
||||
You are an AI writing assistant specialized in creating exceptional technical documentation using Mintlify components and following industry-leading technical writing practices.
|
||||
You are an AI writing assistant specialised in creating exceptional technical documentation using Mintlify components and following industry-leading technical writing practices.
|
||||
|
||||
## Working relationship
|
||||
- You can push back on ideas-this can lead to better documentation. Cite sources and explain your reasoning when you do so
|
||||
- ALWAYS ask for clarification rather than making assumptions
|
||||
- NEVER lie, guess, or make up information
|
||||
|
||||
## Project context
|
||||
- Format: MDX files with YAML frontmatter
|
||||
- Config: docs.json for navigation, theme, settings
|
||||
- Components: Mintlify components
|
||||
|
||||
## Core writing principles
|
||||
|
||||
@@ -36,10 +22,11 @@ You are an AI writing assistant specialized in creating exceptional technical do
|
||||
- Employ present tense for current states, future tense for outcomes
|
||||
- Avoid jargon unless necessary and define terms when first used
|
||||
- Maintain consistent terminology throughout all documentation
|
||||
- Keep sentences concise while providing necessary context
|
||||
- Keep sentences concise whilst providing necessary context
|
||||
- Use parallel structure in lists, headings, and procedures
|
||||
- Use British English spelling and grammar
|
||||
|
||||
### Content organization standards
|
||||
### Content organisation standards
|
||||
|
||||
- Lead with the most important information (inverted pyramid structure)
|
||||
- Use progressive disclosure: basic concepts before advanced ones
|
||||
@@ -48,8 +35,11 @@ You are an AI writing assistant specialized in creating exceptional technical do
|
||||
- Provide expected outcomes for each major step
|
||||
- Use descriptive, keyword-rich headings for navigation and SEO
|
||||
- Group related information logically with clear section breaks
|
||||
- Make content evergreen when possible
|
||||
- Search for existing information before adding new content. Avoid duplication unless it is done for a strategic reason
|
||||
- Check existing patterns for consistency
|
||||
|
||||
### User-centered approach
|
||||
### User-centred approach
|
||||
|
||||
- Focus on user goals and outcomes rather than system features
|
||||
- Anticipate common questions and address them proactively
|
||||
@@ -57,8 +47,22 @@ You are an AI writing assistant specialized in creating exceptional technical do
|
||||
- Write for scannability with clear headings, lists, and white space
|
||||
- Include verification steps to confirm success
|
||||
|
||||
### Frontmatter requirements for pages
|
||||
- title: Clear, descriptive page title
|
||||
- description: Concise summary for SEO/navigation
|
||||
|
||||
### Do not
|
||||
- Skip frontmatter on any MDX file
|
||||
- Use absolute URLs for internal links
|
||||
- Include untested code examples
|
||||
- Make assumptions - always ask for clarification
|
||||
|
||||
## Mintlify component reference
|
||||
|
||||
### docs.json
|
||||
|
||||
- Refer to the [docs.json schema](https://mintlify.com/docs.json) when building the docs.json file and site navigation
|
||||
|
||||
### Callout components
|
||||
|
||||
#### Note - Additional helpful information
|
||||
@@ -102,7 +106,7 @@ const apiConfig = {
|
||||
baseURL: 'https://api.example.com',
|
||||
timeout: 5000,
|
||||
headers: {
|
||||
'Authorization': `Bearer ${process.env.API_TOKEN}`
|
||||
'Authorisation': `Bearer ${process.env.API_TOKEN}`
|
||||
}
|
||||
};
|
||||
```
|
||||
@@ -114,19 +118,19 @@ Example of a code group:
|
||||
<CodeGroup>
|
||||
```javascript Node.js
|
||||
const response = await fetch('/api/endpoint', {
|
||||
headers: { Authorization: `Bearer ${apiKey}` }
|
||||
headers: { Authorisation: `Bearer ${apiKey}` }
|
||||
});
|
||||
```
|
||||
|
||||
```python Python
|
||||
import requests
|
||||
response = requests.get('/api/endpoint',
|
||||
headers={'Authorization': f'Bearer {api_key}'})
|
||||
response = requests.get('/api/endpoint',
|
||||
headers={'Authorisation': f'Bearer {api_key}'})
|
||||
```
|
||||
|
||||
```curl cURL
|
||||
curl -X GET '/api/endpoint' \
|
||||
-H 'Authorization: Bearer YOUR_API_KEY'
|
||||
-H 'Authorisation: Bearer YOUR_API_KEY'
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
@@ -146,7 +150,7 @@ curl -X POST 'https://api.example.com/users' \
|
||||
```json Success
|
||||
{
|
||||
"id": "user_123",
|
||||
"name": "John Doe",
|
||||
"name": "John Doe",
|
||||
"email": "john@example.com",
|
||||
"created_at": "2024-01-15T10:30:00Z"
|
||||
}
|
||||
@@ -162,7 +166,7 @@ Example of step-by-step instructions:
|
||||
<Steps>
|
||||
<Step title="Install dependencies">
|
||||
Run `npm install` to install required packages.
|
||||
|
||||
|
||||
<Check>
|
||||
Verify installation by running `npm list`.
|
||||
</Check>
|
||||
@@ -170,11 +174,11 @@ Example of step-by-step instructions:
|
||||
|
||||
<Step title="Configure environment">
|
||||
Create a `.env` file with your API credentials.
|
||||
|
||||
|
||||
```bash
|
||||
API_KEY=your_api_key_here
|
||||
```
|
||||
|
||||
|
||||
<Warning>
|
||||
Never commit API keys to version control.
|
||||
</Warning>
|
||||
@@ -229,7 +233,7 @@ Example of accordion groups:
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
### Cards and columns for emphasizing information
|
||||
### Cards and columns for emphasising information
|
||||
|
||||
Example of cards and card groups:
|
||||
|
||||
@@ -265,7 +269,7 @@ User's email address. Must be valid and unique within the system.
|
||||
Maximum number of results to return. Range: 1-100.
|
||||
</ParamField>
|
||||
|
||||
<ParamField header="Authorization" type="string" required>
|
||||
<ParamField header="Authorisation" type="string" required>
|
||||
Bearer token for API authentication. Format: `Bearer YOUR_API_KEY`
|
||||
</ParamField>
|
||||
|
||||
@@ -295,12 +299,12 @@ Complete user object with all associated data.
|
||||
<Expandable title="User properties">
|
||||
<ResponseField name="profile" type="object">
|
||||
User profile information including personal details.
|
||||
|
||||
|
||||
<Expandable title="Profile details">
|
||||
<ResponseField name="first_name" type="string">
|
||||
User's first name as entered during registration.
|
||||
</ResponseField>
|
||||
|
||||
|
||||
<ResponseField name="avatar_url" type="string | null">
|
||||
URL to user's profile picture. Returns null if no avatar is set.
|
||||
</ResponseField>
|
||||
@@ -390,14 +394,6 @@ description: "Concise description explaining page purpose and value"
|
||||
- Add explanatory comments for complex logic
|
||||
- Never include real API keys or secrets in code examples
|
||||
|
||||
### API documentation requirements
|
||||
|
||||
- Document all parameters including optional ones with clear descriptions
|
||||
- Show both success and error response examples with realistic data
|
||||
- Include rate limiting information with specific limits
|
||||
- Provide authentication examples showing proper format
|
||||
- Explain all HTTP status codes and error handling
|
||||
- Cover complete request/response cycles
|
||||
|
||||
### Accessibility requirements
|
||||
|
||||
@@ -405,7 +401,7 @@ description: "Concise description explaining page purpose and value"
|
||||
- Use specific, actionable link text instead of "click here"
|
||||
- Ensure proper heading hierarchy starting with H2
|
||||
- Provide keyboard navigation considerations
|
||||
- Use sufficient color contrast in examples and visuals
|
||||
- Use sufficient colour contrast in examples and visuals
|
||||
- Structure content for easy scanning with headers and lists
|
||||
|
||||
## Component selection logic
|
||||
@@ -417,4 +413,3 @@ description: "Concise description explaining page purpose and value"
|
||||
- Use **RequestExample/ResponseExample** specifically for API endpoint documentation
|
||||
- Use **ParamField** for API parameters, **ResponseField** for API responses
|
||||
- Use **Expandable** for nested object properties or hierarchical information
|
||||
````
|
||||
1
docs/CLAUDE.md
Symbolic link
@@ -0,0 +1 @@
|
||||
AGENTS.md
|
||||
@@ -1,16 +1,6 @@
|
||||
# Mintlify Starter Kit
|
||||
|
||||
Use the starter kit to get your docs deployed and ready to customize.
|
||||
|
||||
Click the green **Use this template** button at the top of this repo to copy the Mintlify starter kit. The starter kit contains examples with
|
||||
|
||||
- Guide pages
|
||||
- Navigation
|
||||
- Customizations
|
||||
- API reference pages
|
||||
- Use of popular components
|
||||
|
||||
**[Follow the full quickstart guide](https://starter.mintlify.com/quickstart)**
|
||||
**[Mintlify Quickstart Guide](https://starter.mintlify.com/quickstart)**
|
||||
|
||||
## Development
|
||||
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
---
|
||||
title: "Claude Code setup"
|
||||
description: "Configure Claude Code for your documentation workflow"
|
||||
icon: "asterisk"
|
||||
---
|
||||
|
||||
Claude Code is Anthropic's official CLI tool. This guide will help you set up Claude Code to help you write and maintain your documentation.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Active Claude subscription (Pro, Max, or API access)
|
||||
|
||||
## Setup
|
||||
|
||||
1. Install Claude Code globally:
|
||||
|
||||
```bash
|
||||
npm install -g @anthropic-ai/claude-code
|
||||
```
|
||||
|
||||
2. Navigate to your docs directory.
|
||||
3. (Optional) Add the `CLAUDE.md` file below to your project.
|
||||
4. Run `claude` to start.
|
||||
|
||||
## Create `CLAUDE.md`
|
||||
|
||||
Create a `CLAUDE.md` file at the root of your documentation repository to train Claude Code on your specific documentation standards:
|
||||
|
||||
````markdown
|
||||
# Mintlify documentation
|
||||
|
||||
## Working relationship
|
||||
- You can push back on ideas-this can lead to better documentation. Cite sources and explain your reasoning when you do so
|
||||
- ALWAYS ask for clarification rather than making assumptions
|
||||
- NEVER lie, guess, or make up information
|
||||
|
||||
## Project context
|
||||
- Format: MDX files with YAML frontmatter
|
||||
- Config: docs.json for navigation, theme, settings
|
||||
- Components: Mintlify components
|
||||
|
||||
## Content strategy
|
||||
- Document just enough for user success - not too much, not too little
|
||||
- Prioritize accuracy and usability of information
|
||||
- Make content evergreen when possible
|
||||
- Search for existing information before adding new content. Avoid duplication unless it is done for a strategic reason
|
||||
- Check existing patterns for consistency
|
||||
- Start by making the smallest reasonable changes
|
||||
|
||||
## Frontmatter requirements for pages
|
||||
- title: Clear, descriptive page title
|
||||
- description: Concise summary for SEO/navigation
|
||||
|
||||
## Writing standards
|
||||
- Second-person voice ("you")
|
||||
- Prerequisites at start of procedural content
|
||||
- Test all code examples before publishing
|
||||
- Match style and formatting of existing pages
|
||||
- Include both basic and advanced use cases
|
||||
- Language tags on all code blocks
|
||||
- Alt text on all images
|
||||
- Relative paths for internal links
|
||||
|
||||
## Git workflow
|
||||
- NEVER use --no-verify when committing
|
||||
- Ask how to handle uncommitted changes before starting
|
||||
- Create a new branch when no clear branch exists for changes
|
||||
- Commit frequently throughout development
|
||||
- NEVER skip or disable pre-commit hooks
|
||||
|
||||
## Do not
|
||||
- Skip frontmatter on any MDX file
|
||||
- Use absolute URLs for internal links
|
||||
- Include untested code examples
|
||||
- Make assumptions - always ask for clarification
|
||||
````
|
||||
@@ -1,96 +0,0 @@
|
||||
---
|
||||
title: "Windsurf setup"
|
||||
description: "Configure Windsurf for your documentation workflow"
|
||||
icon: "water"
|
||||
---
|
||||
|
||||
Configure Windsurf's Cascade AI assistant to help you write and maintain documentation. This guide shows how to set up Windsurf specifically for your Mintlify documentation workflow.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Windsurf editor installed
|
||||
- Access to your documentation repository
|
||||
|
||||
## Workspace rules
|
||||
|
||||
Create workspace rules that provide Windsurf with context about your documentation project and standards.
|
||||
|
||||
Create `.windsurf/rules.md` in your project root:
|
||||
|
||||
````markdown
|
||||
# Mintlify technical writing rule
|
||||
|
||||
## Project context
|
||||
|
||||
- This is a documentation project on the Mintlify platform
|
||||
- We use MDX files with YAML frontmatter
|
||||
- Navigation is configured in `docs.json`
|
||||
- We follow technical writing best practices
|
||||
|
||||
## Writing standards
|
||||
|
||||
- Use second person ("you") for instructions
|
||||
- Write in active voice and present tense
|
||||
- Start procedures with prerequisites
|
||||
- Include expected outcomes for major steps
|
||||
- Use descriptive, keyword-rich headings
|
||||
- Keep sentences concise but informative
|
||||
|
||||
## Required page structure
|
||||
|
||||
Every page must start with frontmatter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "Clear, specific title"
|
||||
description: "Concise description for SEO and navigation"
|
||||
---
|
||||
```
|
||||
|
||||
## Mintlify components
|
||||
|
||||
### Callouts
|
||||
|
||||
- `<Note>` for helpful supplementary information
|
||||
- `<Warning>` for important cautions and breaking changes
|
||||
- `<Tip>` for best practices and expert advice
|
||||
- `<Info>` for neutral contextual information
|
||||
- `<Check>` for success confirmations
|
||||
|
||||
### Code examples
|
||||
|
||||
- When appropriate, include complete, runnable examples
|
||||
- Use `<CodeGroup>` for multiple language examples
|
||||
- Specify language tags on all code blocks
|
||||
- Include realistic data, not placeholders
|
||||
- Use `<RequestExample>` and `<ResponseExample>` for API docs
|
||||
|
||||
### Procedures
|
||||
|
||||
- Use `<Steps>` component for sequential instructions
|
||||
- Include verification steps with `<Check>` components when relevant
|
||||
- Break complex procedures into smaller steps
|
||||
|
||||
### Content organization
|
||||
|
||||
- Use `<Tabs>` for platform-specific content
|
||||
- Use `<Accordion>` for progressive disclosure
|
||||
- Use `<Card>` and `<CardGroup>` for highlighting content
|
||||
- Wrap images in `<Frame>` components with descriptive alt text
|
||||
|
||||
## API documentation requirements
|
||||
|
||||
- Document all parameters with `<ParamField>`
|
||||
- Show response structure with `<ResponseField>`
|
||||
- Include both success and error examples
|
||||
- Use `<Expandable>` for nested object properties
|
||||
- Always include authentication examples
|
||||
|
||||
## Quality standards
|
||||
|
||||
- Test all code examples before publishing
|
||||
- Use relative paths for internal links
|
||||
- Include alt text for all images
|
||||
- Ensure proper heading hierarchy (start with h2)
|
||||
- Check existing patterns for consistency
|
||||
````
|
||||
@@ -1,4 +0,0 @@
|
||||
---
|
||||
title: 'Create Plant'
|
||||
openapi: 'POST /plants'
|
||||
---
|
||||
@@ -1,4 +0,0 @@
|
||||
---
|
||||
title: 'Delete Plant'
|
||||
openapi: 'DELETE /plants/{id}'
|
||||
---
|
||||
@@ -1,4 +0,0 @@
|
||||
---
|
||||
title: 'Get Plants'
|
||||
openapi: 'GET /plants'
|
||||
---
|
||||
@@ -1,4 +0,0 @@
|
||||
---
|
||||
title: 'New Plant'
|
||||
openapi: 'WEBHOOK /plant/webhook'
|
||||
---
|
||||
@@ -1,33 +0,0 @@
|
||||
---
|
||||
title: 'Introduction'
|
||||
description: 'Example section for showcasing API endpoints'
|
||||
---
|
||||
|
||||
<Note>
|
||||
If you're not looking to build API reference documentation, you can delete
|
||||
this section by removing the api-reference folder.
|
||||
</Note>
|
||||
|
||||
## Welcome
|
||||
|
||||
There are two ways to build API documentation: [OpenAPI](https://mintlify.com/docs/api-playground/openapi/setup) and [MDX components](https://mintlify.com/docs/api-playground/mdx/configuration). For the starter kit, we are using the following OpenAPI specification.
|
||||
|
||||
<Card
|
||||
title="Plant Store Endpoints"
|
||||
icon="leaf"
|
||||
href="https://github.com/mintlify/starter/blob/main/api-reference/openapi.json"
|
||||
>
|
||||
View the OpenAPI specification file
|
||||
</Card>
|
||||
|
||||
## Authentication
|
||||
|
||||
All API endpoints are authenticated using Bearer tokens and picked up from the specification file.
|
||||
|
||||
```json
|
||||
"security": [
|
||||
{
|
||||
"bearerAuth": []
|
||||
}
|
||||
]
|
||||
```
|
||||
@@ -1,217 +0,0 @@
|
||||
{
|
||||
"openapi": "3.1.0",
|
||||
"info": {
|
||||
"title": "OpenAPI Plant Store",
|
||||
"description": "A sample API that uses a plant store as an example to demonstrate features in the OpenAPI specification",
|
||||
"license": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"servers": [
|
||||
{
|
||||
"url": "http://sandbox.mintlify.com"
|
||||
}
|
||||
],
|
||||
"security": [
|
||||
{
|
||||
"bearerAuth": []
|
||||
}
|
||||
],
|
||||
"paths": {
|
||||
"/plants": {
|
||||
"get": {
|
||||
"description": "Returns all plants from the system that the user has access to",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "limit",
|
||||
"in": "query",
|
||||
"description": "The maximum number of results to return",
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Plant response",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/Plant"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"description": "Unexpected error",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"post": {
|
||||
"description": "Creates a new plant in the store",
|
||||
"requestBody": {
|
||||
"description": "Plant to add to the store",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/NewPlant"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "plant response",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Plant"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"description": "unexpected error",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/plants/{id}": {
|
||||
"delete": {
|
||||
"description": "Deletes a single plant based on the ID supplied",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"description": "ID of plant to delete",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "Plant deleted",
|
||||
"content": {}
|
||||
},
|
||||
"400": {
|
||||
"description": "unexpected error",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"webhooks": {
|
||||
"/plant/webhook": {
|
||||
"post": {
|
||||
"description": "Information about a new plant added to the store",
|
||||
"requestBody": {
|
||||
"description": "Plant added to the store",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/NewPlant"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Return a 200 status to indicate that the data was received successfully"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"schemas": {
|
||||
"Plant": {
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "The name of the plant",
|
||||
"type": "string"
|
||||
},
|
||||
"tag": {
|
||||
"description": "Tag to specify the type",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"NewPlant": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/Plant"
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"id"
|
||||
],
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"description": "Identification number of the plant",
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Error": {
|
||||
"required": [
|
||||
"error",
|
||||
"message"
|
||||
],
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"error": {
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
"message": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"securitySchemes": {
|
||||
"bearerAuth": {
|
||||
"type": "http",
|
||||
"scheme": "bearer"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
215
docs/configuration-customisation/agent-configurations.mdx
Normal file
@@ -0,0 +1,215 @@
|
||||
---
|
||||
title: "Agent Profiles & Configuration"
|
||||
description: "Configure and customise coding agent variants with different settings for planning, models, and sandbox permissions"
|
||||
---
|
||||
|
||||
Agent profiles let you define multiple named variants for each supported coding agent. Variants capture configuration differences like planning mode, model choice, and sandbox permissions that you can quickly select when creating attempts.
|
||||
|
||||
<Info>
|
||||
Agent profiles are used throughout Vibe Kanban wherever agents run: onboarding, default settings, attempt creation, and follow-ups.
|
||||
</Info>
|
||||
|
||||
## Configuration Access
|
||||
|
||||
You can configure agent profiles in two ways through Settings → Agents:
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Form Editor">
|
||||
Use the guided interface with form fields for each agent setting.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/coding-agent-configurations.png" alt="Agent configuration form editor interface" />
|
||||
</Frame>
|
||||
</Tab>
|
||||
|
||||
<Tab title="JSON Editor">
|
||||
Edit the underlying `profiles.json` file directly for advanced configurations.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/coding-agent-configurations-json.png" alt="JSON editor for agent configurations" />
|
||||
</Frame>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<Note>
|
||||
The configuration page displays the exact file path where your settings are stored. Vibe Kanban saves only your overrides whilst preserving built-in defaults.
|
||||
</Note>
|
||||
|
||||
## Configuration Structure
|
||||
|
||||
The profiles configuration uses a JSON structure with an `executors` object containing agent variants:
|
||||
|
||||
```json profiles.json
|
||||
{
|
||||
"executors": {
|
||||
"CLAUDE_CODE": {
|
||||
"DEFAULT": { "CLAUDE_CODE": { "dangerously_skip_permissions": true } },
|
||||
"PLAN": { "CLAUDE_CODE": { "plan": true } },
|
||||
"ROUTER": { "CLAUDE_CODE": { "claude_code_router": true, "dangerously_skip_permissions": true } }
|
||||
},
|
||||
"GEMINI": {
|
||||
"DEFAULT": { "GEMINI": { "model": "default", "yolo": true } },
|
||||
"FLASH": { "GEMINI": { "model": "flash", "yolo": true } }
|
||||
},
|
||||
"CODEX": {
|
||||
"DEFAULT": { "CODEX": { "sandbox": "danger-full-access" } },
|
||||
"HIGH": { "CODEX": { "sandbox": "danger-full-access", "model_reasoning_effort": "high" } }
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Structure Rules">
|
||||
- **Variant names**: Case-insensitive and normalised to SCREAMING_SNAKE_CASE
|
||||
- **DEFAULT variant**: Reserved and always present for each agent
|
||||
- **Custom variants**: Add new variants like `PLAN`, `FLASH`, `HIGH` as needed
|
||||
- **Built-in protection**: Cannot remove built-in executors, but can override values
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Configuration Inheritance">
|
||||
- Your custom settings override built-in defaults
|
||||
- Built-in configurations remain available as fallbacks
|
||||
- Each variant contains a complete configuration object for its agent
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Agent Configuration Options
|
||||
|
||||
<Tabs>
|
||||
<Tab title="CLAUDE_CODE">
|
||||
<ParamField path="plan" type="boolean">
|
||||
Enable planning mode for complex tasks
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="claude_code_router" type="boolean">
|
||||
Route requests across multiple Claude Code instances
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="dangerously_skip_permissions" type="boolean">
|
||||
Skip permission prompts (use with caution)
|
||||
</ParamField>
|
||||
|
||||
[View full CLI reference →](https://docs.anthropic.com/en/docs/claude-code/cli-reference#cli-flags)
|
||||
</Tab>
|
||||
|
||||
<Tab title="GEMINI">
|
||||
<ParamField path="model" type="string">
|
||||
Choose model variant: `"default"` or `"flash"`
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="yolo" type="boolean">
|
||||
Run without confirmations
|
||||
</ParamField>
|
||||
|
||||
[View full CLI reference →](https://google-gemini.github.io/gemini-cli/)
|
||||
</Tab>
|
||||
|
||||
<Tab title="AMP">
|
||||
<ParamField path="dangerously_allow_all" type="boolean">
|
||||
Allow all actions without restrictions (unsafe)
|
||||
</ParamField>
|
||||
|
||||
[View full documentation →](https://ampcode.com/manual#cli)
|
||||
</Tab>
|
||||
|
||||
<Tab title="CODEX">
|
||||
<ParamField path="sandbox" type="string">
|
||||
Execution environment: `"read-only"`, `"workspace-write"`, or `"danger-full-access"`
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="approval" type="string">
|
||||
Approval level: `"untrusted"`, `"on-failure"`, `"on-request"`, or `"never"`
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="model_reasoning_effort" type="string">
|
||||
Reasoning depth: `"low"`, `"medium"`, or `"high"`
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="model_reasoning_summary" type="string">
|
||||
Summary style: `"auto"`, `"concise"`, `"detailed"`, or `"none"`
|
||||
</ParamField>
|
||||
|
||||
[View full documentation →](https://github.com/openai/codex)
|
||||
</Tab>
|
||||
|
||||
<Tab title="CURSOR">
|
||||
<ParamField path="force" type="boolean">
|
||||
Force execution without confirmation
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="model" type="string">
|
||||
Specify model to use
|
||||
</ParamField>
|
||||
|
||||
[View full CLI reference →](https://docs.cursor.com/en/cli/reference/parameters)
|
||||
</Tab>
|
||||
|
||||
<Tab title="OPENCODE">
|
||||
<ParamField path="model" type="string">
|
||||
Specify model to use
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="agent" type="string">
|
||||
Choose agent type
|
||||
</ParamField>
|
||||
|
||||
[View full documentation →](https://opencode.ai/docs/cli/#flags-1)
|
||||
</Tab>
|
||||
|
||||
<Tab title="QWEN_CODE">
|
||||
<ParamField path="yolo" type="boolean">
|
||||
Run without confirmations
|
||||
</ParamField>
|
||||
|
||||
[View full documentation →](https://qwenlm.github.io/qwen-code-docs/en/cli/index)
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### Universal Options
|
||||
|
||||
These options work across multiple agent types:
|
||||
|
||||
<ParamField path="append_prompt" type="string | null">
|
||||
Text appended to the system prompt
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="base_command_override" type="string | null">
|
||||
Override the underlying CLI command
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="additional_params" type="string[] | null">
|
||||
Additional CLI arguments to pass
|
||||
</ParamField>
|
||||
|
||||
<Warning>
|
||||
Options prefixed with "dangerously_" bypass safety confirmations and can perform destructive actions. Use with extreme caution.
|
||||
</Warning>
|
||||
|
||||
## Using Agent Configurations
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Default Configuration" icon="gear">
|
||||
Set your default agent and variant in **Settings → General → Default Agent Configuration** for consistent behaviour across all attempts.
|
||||
</Card>
|
||||
|
||||
<Card title="Per-Attempt Selection" icon="rocket">
|
||||
Override defaults when creating attempts by selecting different agent/variant combinations in the attempt dialogue.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Related Configuration
|
||||
|
||||
<Note>
|
||||
MCP (Model Context Protocol) servers are configured separately under **Settings → MCP Servers** but work alongside agent profiles to extend functionality.
|
||||
</Note>
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="MCP Server Configuration" icon="server" href="/user-guide/mcp-server-configuration">
|
||||
Configure MCP servers within Vibe Kanban for your coding agents
|
||||
</Card>
|
||||
|
||||
<Card title="Vibe Kanban MCP Server" icon="plug" href="/user-guide/vibe-kanban-mcp-server">
|
||||
Connect external MCP clients to Vibe Kanban's MCP server
|
||||
</Card>
|
||||
</CardGroup>
|
||||
68
docs/configuration-customisation/creating-task-templates.mdx
Normal file
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: "Creating Task Templates"
|
||||
description: "Create reusable task formats that speed up task creation. You can create templates globally (across all projects) or for specific projects."
|
||||
---
|
||||
|
||||
## Managing global task templates
|
||||
|
||||
Access global templates from **Global Settings → Task Templates**. These templates are available across every project in your workspace.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/screenshot-global-task-templates.png" alt="Global task templates interface showing the template list and management options" />
|
||||
</Frame>
|
||||
|
||||
<Steps>
|
||||
<Step title="Create a new template">
|
||||
Click **Add Template** to create a new global template.
|
||||
</Step>
|
||||
|
||||
<Step title="Edit existing templates">
|
||||
Use the edit icon (✏️) to modify template content.
|
||||
</Step>
|
||||
|
||||
<Step title="Remove unwanted templates">
|
||||
Click the delete icon (🗑️) to remove templates you no longer need.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Managing project task templates
|
||||
|
||||
Create templates scoped to individual projects for project-specific workflows.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/screenshot-project-task-templates.png" alt="Project task templates interface within the template library" />
|
||||
</Frame>
|
||||
|
||||
<Steps>
|
||||
<Step title="Access project templates">
|
||||
1. Open your project
|
||||
2. Click the library icon in the project header
|
||||
3. Select **Manage Templates**
|
||||
</Step>
|
||||
|
||||
<Step title="Manage project templates">
|
||||
Use **Add Template**, **Edit** (✏️), and **Remove** (🗑️) controls to manage project-specific templates.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Using templates
|
||||
|
||||
Apply templates when creating tasks to prefill content and maintain consistency.
|
||||
|
||||
<Steps>
|
||||
<Step title="Select a template">
|
||||
When creating a new task, click the **Use a template** dropdown.
|
||||
</Step>
|
||||
|
||||
<Step title="Choose from available templates">
|
||||
Select from your global or project-specific templates.
|
||||
|
||||
<Check>
|
||||
The template automatically prefills the task title and description.
|
||||
</Check>
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
<Tip>
|
||||
Global templates appear in all projects, whilst project templates only appear in their specific project. Use global templates for common task types and project templates for specialised workflows.
|
||||
</Tip>
|
||||
70
docs/configuration-customisation/global-settings.mdx
Normal file
@@ -0,0 +1,70 @@
|
||||
---
|
||||
title: "Global Settings"
|
||||
description: "Configure application-wide settings including themes, agents, GitHub integration, and more"
|
||||
sidebarTitle: "Settings"
|
||||
---
|
||||
|
||||
You can configure application-wide settings via the **Settings** page. To access it, click the ⚙️ icon in the sidebar or select "Settings" from the top-right menu.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/vk-settings.png" alt="Vibe Kanban global settings page showing theme options, agent configuration, and GitHub integration settings" />
|
||||
</Frame>
|
||||
|
||||
## Themes
|
||||
|
||||
Switch between light and dark themes to suit your preference.
|
||||
|
||||
## Default Agent Configuration
|
||||
|
||||
Choose the default agent and variant for new task attempts. This profile is pre-selected when creating new task attempts and follow-ups.
|
||||
|
||||
1. **Select an agent** (e.g., Claude Code, Gemini CLI, Codex)
|
||||
2. **Choose a variant** if available (e.g., Default, Plan, Router)
|
||||
|
||||
<Tip>
|
||||
You can override the default agent configuration per attempt in the create attempt dialog.
|
||||
</Tip>
|
||||
|
||||
## Editor Integration
|
||||
|
||||
Configure integration with your preferred code editor (e.g., VS Code) for a seamless development workflow.
|
||||
|
||||
## GitHub Integration
|
||||
|
||||
Link your GitHub account by providing a Personal Access Token (PAT) to enable:
|
||||
|
||||
- Automatic branch management
|
||||
- Pull request creation and tracking
|
||||
- Status synchronisation directly from Vibe Kanban
|
||||
|
||||
## Notifications
|
||||
|
||||
Toggle sound effects and push notifications to stay informed about task status changes.
|
||||
|
||||
## Telemetry
|
||||
|
||||
Enable or disable telemetry data collection to help improve Vibe Kanban.
|
||||
|
||||
## Task Templates
|
||||
|
||||
Manage global task templates to accelerate task creation across all projects. Templates allow you to define reusable titles and descriptions for common tasks.
|
||||
|
||||
<Card title="Learn more about task templates" icon="clone" href="/user-guide/creating-task-templates">
|
||||
Complete guide to creating and managing task templates
|
||||
</Card>
|
||||
|
||||
## Agent Settings (Profiles & Variants)
|
||||
|
||||
Define and customise agent variants under **Settings → Agents**. Variants let you maintain multiple configurations for the same agent (for example, a Claude Code "PLAN" variant).
|
||||
|
||||
<Card title="Agent Profiles & Variants" icon="robot" href="/user-guide/agent-configurations">
|
||||
Detailed guide with examples for configuring agent variants
|
||||
</Card>
|
||||
|
||||
## Safety & Disclaimers
|
||||
|
||||
Manage acknowledgments and reset options for onboarding, safety disclaimers, and telemetry notices.
|
||||
|
||||
- **Onboarding**: Reset the onboarding process to rerun the initial setup.
|
||||
- **Safety Disclaimer**: Reset or review the safety disclaimer prompt.
|
||||
- **Telemetry Notice**: Reset or review the telemetry data collection acknowledgment.
|
||||
58
docs/configuration-customisation/keyboard-shortcuts.mdx
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: "Keyboard Shortcuts"
|
||||
description: "Complete guide to keyboard shortcuts for efficient navigation and interaction in Vibe Kanban"
|
||||
---
|
||||
|
||||
Vibe Kanban provides comprehensive keyboard shortcuts to help you navigate and interact with the application efficiently. These shortcuts are organised by scope and context.
|
||||
|
||||
## Platform Keys
|
||||
|
||||
- **⌘** = Mac Command key
|
||||
- **Ctrl** = Windows/Linux Control key
|
||||
|
||||
## Global Shortcuts
|
||||
|
||||
These shortcuts work anywhere in the application (unless you're typing in an input field):
|
||||
|
||||
| Shortcut | Action | Description |
|
||||
|----------|--------|-------------|
|
||||
| `C` | Create Task | Opens the Task Form dialog to create a new task |
|
||||
| `⌘/Ctrl + S` | Focus Search | Puts keyboard focus into the global search input |
|
||||
|
||||
## Board Navigation
|
||||
|
||||
These shortcuts work when a task card is highlighted with the blue focus ring:
|
||||
|
||||
| Shortcut | Action | Description |
|
||||
|----------|--------|-------------|
|
||||
| `↑` / `↓` | Vertical Navigation | Move focus to previous/next task in the current column |
|
||||
| `←` / `→` | Horizontal Navigation | Move focus to first task in previous/next non-empty column |
|
||||
| `Enter` / `Space` | Open Task | Open the Task Details panel for the focused task |
|
||||
| `Backspace` | Delete Task | Delete the currently focused task |
|
||||
|
||||
## Form Submission
|
||||
|
||||
These shortcuts work in various forms and dialogs:
|
||||
|
||||
| Shortcut | Action | Context |
|
||||
|----------|--------|---------|
|
||||
| `⌘/Ctrl + Enter` | Submit | Create & Start (Task Form), Save (Template Editor) |
|
||||
| `⌘/Ctrl + Enter` | Send | Send follow-up message in Task Details |
|
||||
| `⌘/Ctrl + Enter` | Save Comment | Add or save comment in Diff Review |
|
||||
| `Escape` | Cancel/Clear | Clear draft in follow-up, cancel comment editing |
|
||||
|
||||
## Search
|
||||
|
||||
| Shortcut | Action | Description |
|
||||
|----------|--------|-------------|
|
||||
| `⌘/Ctrl + S` | Focus Search | Move cursor to the search input field |
|
||||
| `Escape` | Clear Search | Clear search text and remove focus (when in search field) |
|
||||
|
||||
*Note: The search field displays a "⌘S" badge to help you discover this shortcut.*
|
||||
|
||||
## Tips
|
||||
|
||||
- **Focus Indicators**: Look for blue focus rings around task cards to know when board navigation shortcuts are active
|
||||
- **Input Fields**: Global shortcuts are disabled when typing in text fields to avoid conflicts
|
||||
- **Visual Cues**: Some shortcuts display badges or hints in the interface (like the "⌘S" next to search)
|
||||
- **Modifier Keys**: Global shortcuts are disabled when holding Ctrl/⌘/Alt unless the shortcut specifically uses those modifiers
|
||||
57
docs/core-features/creating-projects.mdx
Normal file
@@ -0,0 +1,57 @@
|
||||
---
|
||||
title: "Creating Projects"
|
||||
description: "Learn how to create and configure projects in Vibe Kanban"
|
||||
---
|
||||
|
||||
Before you can create tasks and execute coding agents, you must create a project.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/vk-create-project.png" alt="Create project dialog showing options to create from existing git repository or blank project" />
|
||||
</Frame>
|
||||
|
||||
## Creating Your Project
|
||||
Click the **Create Project** button to choose from two options:
|
||||
- **From existing git repository**: Browse your file system and select from a list of git repositories sorted by recent activity
|
||||
- **Create blank project**: Generate a new git repository from scratch
|
||||
Each project represents a git repository. After creation, you can configure it with setup scripts, dev server scripts, and other settings.
|
||||
|
||||
|
||||
<Note>
|
||||
After creating a project, you need to press the settings button in the top right to configure project scripts and settings.
|
||||
</Note>
|
||||
|
||||
## Project Settings
|
||||
|
||||
Once you've created a project, you can access the project settings by clicking the settings button in the top right corner. From here, you can configure various aspects of your project.
|
||||
|
||||
### Setup Scripts
|
||||
|
||||
Setup scripts will be run before the coding agent is executed. This is useful for installing dependencies, for example you might run `npm install` or `cargo build`. This will save you time as your agent won't need to figure out that these commands haven't already been run.
|
||||
|
||||
<Note>
|
||||
Each time a coding agent is executed it runs in a [git worktree](https://git-scm.com/docs/git-worktree) which is unlikely to contain your dependencies, configs, .env etc.
|
||||
</Note>
|
||||
|
||||
### Dev Server Scripts
|
||||
|
||||
The dev server script is run whenever you press the "run dev server" button. It's useful for quickly reviewing work after a coding agent has run.
|
||||
|
||||
### Copy Files
|
||||
|
||||
Comma-separated list of files to copy from the original project directory to the worktree. These files will be copied after the worktree is created but before the setup script runs. Useful for environment-specific files like `.env`, configuration files, and local settings.
|
||||
|
||||
<Warning>
|
||||
Make sure these files are gitignored or they could get committed!
|
||||
</Warning>
|
||||
|
||||
### Project Task Templates
|
||||
|
||||
From project settings, you can also configure project-specific task templates. For more details about this feature, see the [project task templates section](/configuration-customisation/creating-task-templates#project-task-templates).
|
||||
|
||||
### Cleanup Scripts
|
||||
|
||||
Cleanup scripts run after a coding agent finishes. You can use these to tidy up the workspace, remove temporary files, or perform any post-execution cleanup. For example, you might run:
|
||||
|
||||
```bash
|
||||
npm run clean
|
||||
```
|
||||
78
docs/core-features/creating-task-attempts.mdx
Normal file
@@ -0,0 +1,78 @@
|
||||
---
|
||||
title: "Creating Task Attempts"
|
||||
description: "Understand when and why to create multiple task attempts for fresh restarts with different configurations."
|
||||
sidebarTitle: "Creating Task Attempts"
|
||||
---
|
||||
|
||||
A task attempt represents a single execution of a coding agent against a task. Most tasks only need one attempt, but you may need additional attempts for fresh restarts.
|
||||
|
||||
## When to Create New Task Attempts
|
||||
|
||||
Create a new task attempt when you want to:
|
||||
|
||||
- **Start from scratch** with a different approach after an unsuccessful attempt
|
||||
- **Try a different coding agent** (e.g., switching from Claude to Codex)
|
||||
- **Use a different agent profile or variant** for specialised behaviour
|
||||
- **Work from a different base branch** to incorporate recent changes
|
||||
- **Reset the conversation context** for a completely fresh start
|
||||
|
||||
<Tip>
|
||||
Most users will only need one attempt per task. Only create additional attempts if the first approach didn't work as expected.
|
||||
</Tip>
|
||||
|
||||
## Creating Additional Attempts
|
||||
|
||||
To create a new task attempt for an existing task:
|
||||
|
||||
<Steps>
|
||||
<Step title="Navigate to the task">
|
||||
Open the task that needs a fresh attempt.
|
||||
</Step>
|
||||
|
||||
<Step title="Click New Attempt">
|
||||
In the task interface, click the **New Attempt** button.
|
||||
</Step>
|
||||
|
||||
<Step title="Configure the attempt">
|
||||
Choose your agent profile, variant, and base branch. These can be different from previous attempts.
|
||||
</Step>
|
||||
|
||||
<Step title="Start execution">
|
||||
Click **Create Attempt** to begin a fresh execution with the new configuration.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Impact on Subtasks
|
||||
|
||||
<Warning>
|
||||
Creating new task attempts affects subtasks. Subtasks are linked to specific task attempts, not tasks themselves.
|
||||
</Warning>
|
||||
|
||||
When you create a new task attempt:
|
||||
|
||||
- **Existing subtasks** remain linked to their original parent attempt
|
||||
- **New subtasks** created from the new attempt will use the new attempt's branch as their base
|
||||
- This allows you to maintain different subtask workflows for different approaches
|
||||
|
||||
<Info>
|
||||
For more details about how subtasks work with task attempts, see [Creating Subtasks](/core-features/subtasks).
|
||||
</Info>
|
||||
|
||||
## What Happens Next
|
||||
|
||||
After creating a task attempt:
|
||||
|
||||
1. **Setup scripts run** automatically (if configured in project settings)
|
||||
2. **Agent executes** using your task title and description
|
||||
3. **Real-time monitoring** shows progress through streaming logs
|
||||
4. **Follow-up questions** can be asked to refine results
|
||||
|
||||
For detailed task management after execution, including development server controls, git operations, and monitoring features, see [Task Details Full Screen Mode](/core-features/task-details-full-screen).
|
||||
|
||||
## Git Worktrees
|
||||
|
||||
Vibe Kanban uses Git worktrees to create isolated environments for each task attempt. These environments are ephemeral and automatically cleaned up after execution completes.
|
||||
|
||||
<Info>
|
||||
Worktrees ensure task attempts don't interfere with each other or your main working directory.
|
||||
</Info>
|
||||
114
docs/core-features/creating-tasks.mdx
Normal file
@@ -0,0 +1,114 @@
|
||||
---
|
||||
title: "Creating Tasks"
|
||||
description: "Learn how to create and manage tasks on your kanban board, including using templates, starting coding agents, and understanding task states"
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/screenshot-create-task.png" alt="Task creation interface showing Add Task button and form fields" />
|
||||
</Frame>
|
||||
|
||||
After creating a project, add tasks by clicking the **plus (+) icon** in the top right of your project kanban page, or by using the keyboard shortcut **`c`**. Creating a task adds it to your kanban board without automatically starting a coding agent.
|
||||
|
||||
## Using Templates
|
||||
|
||||
<Frame>
|
||||
<img src="/images/screenshot-create-task-template-dropdown.png" alt="Template dropdown menu showing available global and project-specific templates" />
|
||||
</Frame>
|
||||
|
||||
When adding a task, you can select from your saved templates:
|
||||
|
||||
1. Click the **Use a template** dropdown
|
||||
2. Choose from available global or project templates
|
||||
3. The template automatically populates the task title and description
|
||||
|
||||
<Note>
|
||||
Templates save time by reusing common task structures. Learn more about creating templates in the [Task Templates](/configuration-customisation/creating-task-templates) guide.
|
||||
</Note>
|
||||
|
||||
## Starting Your First Task Attempt
|
||||
|
||||
<Frame>
|
||||
<img src="/images/screenshot-create-task-attempt.png" alt="Task attempt creation dialog showing agent profile and variant selection options" />
|
||||
</Frame>
|
||||
|
||||
To activate a coding agent on your task, create a task attempt:
|
||||
|
||||
<Steps>
|
||||
<Step title="Select your agent profile">
|
||||
Choose from available agents (e.g., CLAUDE_CODE, GEMINI, CODEX). Your default configuration from Settings is pre-selected.
|
||||
</Step>
|
||||
|
||||
<Step title="Choose a variant">
|
||||
If your selected agent has variants, pick the appropriate one (e.g., DEFAULT, PLAN).
|
||||
</Step>
|
||||
|
||||
<Step title="Set the base branch">
|
||||
Specify which branch the agent should work from. Your current branch is selected by default.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
<Tip>
|
||||
Use **Create & Start** to add the task and immediately create a task attempt with your default settings in one action.
|
||||
</Tip>
|
||||
|
||||
### What Happens During Execution
|
||||
|
||||
1. **Setup Scripts Run**: Any setup script defined in your project settings runs automatically
|
||||
2. **Agent Execution**: The coding agent processes your task using the title and description
|
||||
3. **Real-time Monitoring**: Watch progress through streaming logs in the task interface
|
||||
4. **Follow-up Questions**: Continue the conversation after execution to refine results
|
||||
|
||||
Most tasks only need a single attempt. You'll only need additional attempts if you want to restart from scratch with different settings.
|
||||
|
||||
<Note>
|
||||
For detailed task management after execution, see [Task Details Full Screen Mode](/core-features/task-details-full-screen). To understand when you might need multiple attempts, see [Creating Task Attempts](/core-features/creating-task-attempts).
|
||||
</Note>
|
||||
|
||||
## Creating Tasks via MCP Clients
|
||||
|
||||
<Warning>
|
||||
This is not the typical method for creating tasks but can be valuable for bulk task creation or migrating from other systems.
|
||||
</Warning>
|
||||
|
||||
Tasks can also be created programmatically using coding agents or MCP (Model Context Protocol) clients such as Claude Desktop or Raycast. This approach is particularly useful for:
|
||||
|
||||
- **Bulk task creation** based on existing data or project specifications
|
||||
- **Migration from other systems** like Linear, GitHub Issues, or Jira
|
||||
- **Automated task generation** from project plans or requirements documents
|
||||
|
||||
<Tip>
|
||||
For detailed setup instructions and examples, see the [Vibe Kanban MCP Server](/integrations/vibe-kanban-mcp-server) documentation.
|
||||
</Tip>
|
||||
|
||||
### Example MCP Task Creation
|
||||
|
||||
Once configured with an MCP client, you can create multiple tasks from a project description:
|
||||
|
||||
```
|
||||
I need to implement user authentication with:
|
||||
- Email/password registration
|
||||
- Login with session management
|
||||
- Password reset functionality
|
||||
- Email verification
|
||||
- Protected route middleware
|
||||
|
||||
Please create individual tasks for each component.
|
||||
```
|
||||
|
||||
The MCP client will automatically generate structured tasks in your Vibe Kanban project based on this description.
|
||||
|
||||
## Understanding Task Columns
|
||||
|
||||
Tasks begin in the "To do" column and move automatically based on their progress:
|
||||
|
||||
| Action | Column |
|
||||
|--------|---------|
|
||||
| Task created | To do |
|
||||
| Task attempt started | In Progress |
|
||||
| Task attempt completed (success or failure) | In Review |
|
||||
| Task attempt merged | Done |
|
||||
| PR merged on GitHub | Done |
|
||||
|
||||
<Info>
|
||||
You can manually drag tasks between columns, but this won't trigger any functionality. Task movement is primarily driven by coding agent actions and GitHub integration (which polls every 60 seconds).
|
||||
</Info>
|
||||
100
docs/core-features/reviewing-code-changes.mdx
Normal file
@@ -0,0 +1,100 @@
|
||||
---
|
||||
title: "Reviewing Code Changes"
|
||||
description: "Learn how to review and provide feedback on code changes made by coding agents"
|
||||
---
|
||||
|
||||
When a coding agent completes a task, it automatically moves to the **In Review** column. This is where you can examine the changes, provide feedback, and ensure the implementation meets your requirements.
|
||||
|
||||
<video
|
||||
controls
|
||||
className="w-full aspect-video rounded-xl"
|
||||
src="https://vkcdn.britannio.dev/vk-code-review-2.mp4"
|
||||
></video>
|
||||
|
||||
## Opening the Code Review Interface
|
||||
|
||||
<Steps>
|
||||
<Step title="Access the task">
|
||||
Click on any task in the **In Review** column to open it in full screen mode.
|
||||
</Step>
|
||||
|
||||
<Step title="Navigate to the Diffs tab">
|
||||
Once the task is open, click on the **Diffs** tab to view all the code changes made by the agent.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Adding Review Comments
|
||||
|
||||
### Line-Specific Comments
|
||||
|
||||
To provide feedback on specific lines of code:
|
||||
|
||||
<Steps>
|
||||
<Step title="Locate the line">
|
||||
Find the line you want to comment on in the diffs view.
|
||||
</Step>
|
||||
|
||||
<Step title="Add a comment">
|
||||
Click the **plus icon** (+) at the beginning of the line to create a review comment.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/add-line-comment.png" alt="Plus icon for adding line comments" />
|
||||
</Frame>
|
||||
</Step>
|
||||
|
||||
<Step title="Write your feedback">
|
||||
Enter your comment in the text field that appears. You can provide suggestions, ask questions, or request changes.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
### Multiple Comments Across Files
|
||||
|
||||
You can create several review comments across different files in the same review:
|
||||
|
||||
- Add comments to multiple lines within a single file
|
||||
- Switch between different changed files and add comments to each
|
||||
- All comments will be collected and submitted together as part of your review
|
||||
|
||||
<Note>
|
||||
Review comments are not submitted individually. They are collected and sent as a complete review when you submit your feedback.
|
||||
</Note>
|
||||
|
||||
## General Review Comments
|
||||
|
||||
In addition to line-specific feedback, you can provide general comments about the entire implementation:
|
||||
|
||||
<Steps>
|
||||
<Step title="Use the task chat">
|
||||
Navigate to the task chat field at the bottom of the review interface.
|
||||
</Step>
|
||||
|
||||
<Step title="Add general feedback">
|
||||
Enter broader comments about the implementation, such as:
|
||||
- Overall code quality assessment
|
||||
- Architectural concerns
|
||||
- Performance considerations
|
||||
- Testing requirements
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Submitting Your Review
|
||||
|
||||
<Steps>
|
||||
<Step title="Review all comments">
|
||||
Before submitting, review all the line-specific and general comments you've added.
|
||||
</Step>
|
||||
|
||||
<Step title="Submit the review">
|
||||
Click the **Send** button to send all your feedback to the coding agent.
|
||||
|
||||
<Info>
|
||||
All comments (line-specific and general) are combined into a single message for the coding agent to address.
|
||||
</Info>
|
||||
</Step>
|
||||
|
||||
<Step title="Task moves back to In Progress">
|
||||
Once submitted, the task returns to the **In Progress** column where the agent will address your feedback and implement the requested changes.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
|
||||
128
docs/core-features/subtasks.mdx
Normal file
@@ -0,0 +1,128 @@
|
||||
---
|
||||
title: "Creating Subtasks"
|
||||
description: "Learn how to create and manage subtasks to break down complex work into smaller, manageable pieces"
|
||||
---
|
||||
|
||||
Subtasks allow you to break down complex tasks into smaller, more manageable pieces. Each subtask is linked to a specific task attempt and inherits the same project and branch context.
|
||||
|
||||
## Creating Subtasks
|
||||
|
||||
<Frame>
|
||||
<img src="/images/screenshot-create-subtask-button.png" alt="Current attempt toolbar showing the Create Subtask button with GitFork icon" />
|
||||
</Frame>
|
||||
|
||||
To create a subtask from an existing task attempt:
|
||||
|
||||
<Steps>
|
||||
<Step title="Navigate to the task attempt">
|
||||
Open the task you want to create subtasks for.
|
||||
</Step>
|
||||
|
||||
<Step title="Click Create Subtask">
|
||||
In the actions toolbar, click the **Create Subtask** button (marked with a fork icon).
|
||||
</Step>
|
||||
|
||||
<Step title="Fill in subtask details">
|
||||
The task creation dialog opens with the parent task attempt and base branch automatically set. Add your subtask title and description.
|
||||
</Step>
|
||||
|
||||
<Step title="Save the subtask">
|
||||
Click **Save** to create the subtask. It will appear as a new task on your kanban board.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
<Note>
|
||||
When you create a subtask, it automatically inherits the base branch from its parent task attempt, ensuring consistency in your development workflow.
|
||||
</Note>
|
||||
|
||||
## Viewing Tasks with Subtasks
|
||||
|
||||
<Frame>
|
||||
<img src="/images/screenshot-task-with-subtasks.png" alt="Task view showing a parent task with its associated subtasks listed in the Task Relationships panel" />
|
||||
</Frame>
|
||||
|
||||
When viewing a parent task, you can see its subtasks in the **Task Relationships** panel. This collapsible section shows:
|
||||
|
||||
- **Child Tasks** with a count (e.g., "CHILD TASKS (1)")
|
||||
- Individual subtask titles with links to view them
|
||||
- Easy navigation between parent and child tasks
|
||||
|
||||
This helps you track progress across all related work items and understand the task hierarchy at a glance.
|
||||
|
||||
## Viewing Subtask Details
|
||||
|
||||
<Frame>
|
||||
<img src="/images/screenshot-subtask-parent-info.png" alt="Subtask detail view showing parent task information in the Task Relationships panel" />
|
||||
</Frame>
|
||||
|
||||
When viewing a subtask, the **Task Relationships** panel displays:
|
||||
|
||||
- **Parent Task** section showing the parent task title
|
||||
- Direct link to navigate to the parent task
|
||||
- Clear visual indication that this is a child task
|
||||
- Context about the parent-child relationship
|
||||
|
||||
The subtask also shows its own **Create Subtask** button, allowing you to create nested subtasks if needed.
|
||||
|
||||
## How Subtasks Work
|
||||
|
||||
Subtasks in Vibe Kanban follow these key principles:
|
||||
|
||||
### Git Branching Workflow
|
||||
|
||||
Subtasks create their own feature branches that can work independently while maintaining connection to the parent task:
|
||||
|
||||
```mermaid
|
||||
gitGraph
|
||||
commit id: "main"
|
||||
branch feature/parent-task
|
||||
checkout feature/parent-task
|
||||
commit id: "Parent Task Start"
|
||||
commit id: "Initial work"
|
||||
|
||||
branch feature/subtask-1
|
||||
checkout feature/subtask-1
|
||||
commit id: "Subtask 1: Backend API"
|
||||
commit id: "API implementation"
|
||||
commit id: "API tests"
|
||||
|
||||
checkout feature/parent-task
|
||||
branch feature/subtask-2
|
||||
checkout feature/subtask-2
|
||||
commit id: "Subtask 2: Frontend UI"
|
||||
commit id: "Component creation"
|
||||
commit id: "UI styling"
|
||||
|
||||
checkout feature/parent-task
|
||||
branch feature/subtask-3
|
||||
checkout feature/subtask-3
|
||||
commit id: "Subtask 3: Integration"
|
||||
commit id: "Connect API to UI"
|
||||
|
||||
checkout feature/parent-task
|
||||
merge feature/subtask-1
|
||||
merge feature/subtask-2
|
||||
merge feature/subtask-3
|
||||
commit id: "Parent Task Complete"
|
||||
|
||||
checkout main
|
||||
merge feature/parent-task
|
||||
```
|
||||
|
||||
### Parent-Child Relationships
|
||||
|
||||
- Subtasks are linked to specific **task attempts**, not just tasks
|
||||
- Each subtask knows which attempt created it
|
||||
- Multiple subtasks can be created from the same parent attempt
|
||||
|
||||
### Branch Inheritance
|
||||
|
||||
- Subtasks automatically inherit the base branch from their parent attempt
|
||||
- This ensures subtasks work within the same development context
|
||||
- You can modify the branch when creating the subtask if needed
|
||||
|
||||
### Independent Task Lifecycle
|
||||
|
||||
- Subtasks appear as regular tasks on your kanban board
|
||||
- Each subtask has its own lifecycle (To do → In Progress → In Review → Done)
|
||||
- Subtasks can have their own task attempts and coding agents
|
||||
135
docs/core-features/task-details-full-screen.mdx
Normal file
@@ -0,0 +1,135 @@
|
||||
---
|
||||
title: "Task Details Full Screen Mode"
|
||||
sidebarTitle: "Full Screen Mode"
|
||||
description: "Complete guide to using the task details full screen mode for development workflows, including dev server, git operations, logs, diffs, and process monitoring"
|
||||
---
|
||||
|
||||
## Accessing Full Screen Mode
|
||||
|
||||
Click the **Maximise** button (⛶) in the task details header to expand the view to occupy the full right side of your screen. Some task actions (like "View full diff") automatically switch to full screen mode for better visibility.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/vk-task-detail.jpeg" alt="Task details in full screen mode showing the complete interface with sidebar and tabs" />
|
||||
</Frame>
|
||||
|
||||
## Interface Layout
|
||||
|
||||
Full screen mode uses a two-column layout:
|
||||
|
||||
### Left Sidebar
|
||||
- **Task Information**: Title, description, and metadata
|
||||
- **Development Toolbar**: Primary development actions
|
||||
- **TODOs**: Task checklist and progress tracking
|
||||
- **Relationships**: Subtasks and parent task links
|
||||
|
||||
### Right Panel
|
||||
- **Tab Navigation**: Switch between Logs, Diffs, and Processes
|
||||
- **Content Area**: Active tab content with real-time updates
|
||||
- **Follow-up Section**: Additional context and actions
|
||||
|
||||
## Core Features
|
||||
|
||||
### Development Server
|
||||
|
||||
Start and manage your project's development environment directly from the task interface.
|
||||
|
||||
**Controls:**
|
||||
- **Dev** (▶️): Start the development server using your project's configured dev script
|
||||
- **Stop Dev** (⏹️): Terminate the running development server
|
||||
- **View Logs** (📄): Jump to process logs to monitor server output
|
||||
|
||||
The development server runs in a git worktree environment and streams all output to the Processes tab. Click the logs button next to the dev server control to jump directly to the process logs for real-time monitoring.
|
||||
|
||||
### Git Operations
|
||||
|
||||
#### Rebase
|
||||
Keep your task branch up-to-date with the latest changes from the base branch.
|
||||
|
||||
- **Automatic Detection**: The rebase button appears when your branch is behind the base branch
|
||||
- **Conflict Handling**: Any merge conflicts are displayed in the Diffs tab
|
||||
|
||||
#### Merge
|
||||
Integrate your completed work back into the base branch.
|
||||
|
||||
- **Availability**: Disabled when an open pull request exists
|
||||
- **Success Indication**: A "Merged!" notification confirms successful integration
|
||||
|
||||
#### Push & Pull Request Management
|
||||
- **Create PR**: Opens pull request creation dialog for new branches
|
||||
- **Push to PR**: Updates existing pull request with latest changes
|
||||
- **Auto-detection**: Automatically detects existing PRs and adjusts button behavior
|
||||
|
||||
### Task Management
|
||||
|
||||
#### History & Attempts
|
||||
View and manage all task attempts from the full screen interface.
|
||||
|
||||
- **History**: View all previous attempts for this task, review execution status and outcomes, and switch between different attempts to compare results
|
||||
- **New Attempt**: Create additional attempts when previous approaches didn't work as expected or when testing different implementation strategies
|
||||
|
||||
<Info>
|
||||
For detailed information about when and why to create new attempts, see [Creating Task Attempts](/core-features/creating-task-attempts).
|
||||
</Info>
|
||||
|
||||
#### Subtasks
|
||||
Break down complex tasks into manageable pieces.
|
||||
|
||||
- **Create Subtask** (🔀): Opens task creation form with:
|
||||
- Parent task automatically linked
|
||||
- Initial base branch set to the current attempt's branch
|
||||
- Subtasks link to specific task attempts, not tasks themselves
|
||||
|
||||
<Warning>
|
||||
Creating new task attempts affects existing subtasks, as they remain linked to their original parent attempt.
|
||||
</Warning>
|
||||
|
||||
Learn more in [Creating Subtasks](/core-features/subtasks).
|
||||
|
||||
### Monitoring & Analysis
|
||||
|
||||
#### Logs Tab
|
||||
The Logs tab provides real-time streaming of coding agent activities and reasoning. You can see the agent's thought process, actions being taken, and responses as tasks are executed. Process events from development servers, builds, and script execution are also logged here.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/vk-logs.png" alt="Logs tab showing real-time streaming of agent output and process events" />
|
||||
</Frame>
|
||||
|
||||
#### Diffs Tab
|
||||
The Diffs tab provides a visual representation of all code changes made during task execution. It shows a git diff between your branch and the base branch, with syntax highlighting and language-aware code formatting. You can see a summary of added, modified, and deleted files with precise line-by-line change tracking and context.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/vk-diffs.png" alt="Diffs tab displaying code changes with syntax highlighting and line-by-line comparison" />
|
||||
</Frame>
|
||||
|
||||
Learn more in [Reviewing Code Changes](/core-features/reviewing-code-changes).
|
||||
|
||||
#### Processes Tab
|
||||
The Processes tab displays a timeline view of all running and completed processes. You can track the status of running, completed, failed, and stopped processes with their complete execution timeline. Click any process to view its specific output logs, and use the interactive controls to stop running processes directly from the interface.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/vk-processes.png" alt="Processes tab showing timeline of running and completed processes with status tracking" />
|
||||
</Frame>
|
||||
|
||||
## Navigation & Controls
|
||||
|
||||
### Keyboard Shortcuts
|
||||
- **Escape**: Exit full screen mode and return to sidebar view
|
||||
- **Tab Navigation**: Use browser tab controls to switch between Logs, Diffs, and Processes
|
||||
|
||||
|
||||
|
||||
## Exiting Full Screen Mode
|
||||
|
||||
- Click the **Minimize** button in the header
|
||||
- Press **Escape** key
|
||||
- Click the **×** button to close the task panel entirely
|
||||
- Navigate to a different task or project
|
||||
|
||||
The interface gracefully transitions back to the compact sidebar view while preserving your work context.
|
||||
|
||||
## Related Documentation
|
||||
|
||||
- [Creating Task Attempts](/core-features/creating-task-attempts) - Learn about task attempt lifecycle
|
||||
- [Reviewing Code Changes](/core-features/reviewing-code-changes) - Deep dive into diff analysis
|
||||
- [Creating Tasks](/core-features/creating-tasks) - Task creation and management
|
||||
- [Agent Configurations](/configuration-customisation/agent-configurations) - Customise AI agent behaviour
|
||||
@@ -1,94 +0,0 @@
|
||||
---
|
||||
title: 'Development'
|
||||
description: 'Preview changes locally to update your docs'
|
||||
---
|
||||
|
||||
<Info>
|
||||
**Prerequisites**:
|
||||
- Node.js version 19 or higher
|
||||
- A docs repository with a `docs.json` file
|
||||
</Info>
|
||||
|
||||
Follow these steps to install and run Mintlify on your operating system.
|
||||
|
||||
<Steps>
|
||||
<Step title="Install the Mintlify CLI">
|
||||
|
||||
```bash
|
||||
npm i -g mint
|
||||
```
|
||||
</Step>
|
||||
|
||||
<Step title="Preview locally">
|
||||
|
||||
Navigate to your docs directory where your `docs.json` file is located, and run the following command:
|
||||
|
||||
```bash
|
||||
mint dev
|
||||
```
|
||||
|
||||
A local preview of your documentation will be available at `http://localhost:3000`.
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Custom ports
|
||||
|
||||
By default, Mintlify uses port 3000. You can customize the port Mintlify runs on by using the `--port` flag. For example, to run Mintlify on port 3333, use this command:
|
||||
|
||||
```bash
|
||||
mint dev --port 3333
|
||||
```
|
||||
|
||||
If you attempt to run Mintlify on a port that's already in use, it will use the next available port:
|
||||
|
||||
```md
|
||||
Port 3000 is already in use. Trying 3001 instead.
|
||||
```
|
||||
|
||||
## Mintlify versions
|
||||
|
||||
Please note that each CLI release is associated with a specific version of Mintlify. If your local preview does not align with the production version, please update the CLI:
|
||||
|
||||
```bash
|
||||
npm mint update
|
||||
```
|
||||
|
||||
## Validating links
|
||||
|
||||
The CLI can assist with validating links in your documentation. To identify any broken links, use the following command:
|
||||
|
||||
```bash
|
||||
mint broken-links
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
If the deployment is successful, you should see the following:
|
||||
|
||||
<Frame>
|
||||
<img src="/images/checks-passed.png" alt="Screenshot of a deployment confirmation message that says All checks have passed." style={{ borderRadius: '0.5rem' }} />
|
||||
</Frame>
|
||||
|
||||
## Code formatting
|
||||
|
||||
We suggest using extensions on your IDE to recognize and format MDX. If you're a VSCode user, consider the [MDX VSCode extension](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx) for syntax highlighting, and [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) for code formatting.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title='Error: Could not load the "sharp" module using the darwin-arm64 runtime'>
|
||||
|
||||
This may be due to an outdated version of node. Try the following:
|
||||
1. Remove the currently-installed version of the CLI: `npm remove -g mint`
|
||||
2. Upgrade to Node v19 or higher.
|
||||
3. Reinstall the CLI: `npm i -g mint`
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Issue: Encountering an unknown error">
|
||||
|
||||
Solution: Go to the root of your device and delete the `~/.mintlify` folder. Then run `mint dev` again.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
Curious about what changed in the latest CLI version? Check out the [CLI changelog](https://www.npmjs.com/package/mintlify?activeTab=versions).
|
||||
@@ -3,6 +3,10 @@
|
||||
"theme": "mint",
|
||||
"name": "Vibe Kanban",
|
||||
"description": "A kanban board for developers to track coding tasks with AI coding agents",
|
||||
"banner": {
|
||||
"content": "🎉 **Ultimate Agents Hackathon** - London, September 20th | £10k in prizes! [Register now](https://london.aitinkerers.org/p/ultimate-agents-hackathon-10k-total-prizes)",
|
||||
"dismissible": true
|
||||
},
|
||||
"colors": {
|
||||
"primary": "#000000",
|
||||
"light": "#fefefe",
|
||||
@@ -19,31 +23,35 @@
|
||||
"groups": [
|
||||
{
|
||||
"group": "Getting started",
|
||||
"pages": ["index", "getting-started", "onboarding", "global-settings"]
|
||||
"pages": ["index", "getting-started", "supported-coding-agents"]
|
||||
},
|
||||
{
|
||||
"group": "Supported Coding Agents",
|
||||
"group": "Core Features",
|
||||
"pages": [
|
||||
"supported-coding-agents",
|
||||
"supported-coding-agents/amp",
|
||||
"supported-coding-agents/claude-code",
|
||||
"supported-coding-agents/cursor-cli",
|
||||
"supported-coding-agents/ccr",
|
||||
"supported-coding-agents/codex",
|
||||
"supported-coding-agents/gemini-cli",
|
||||
"supported-coding-agents/sst-opencode",
|
||||
"supported-coding-agents/qwen-code"
|
||||
"core-features/creating-projects",
|
||||
"core-features/creating-tasks",
|
||||
"core-features/subtasks",
|
||||
"core-features/creating-task-attempts",
|
||||
"core-features/reviewing-code-changes",
|
||||
"core-features/task-details-full-screen"
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "User Guide",
|
||||
"group": "Configuration & Customisation",
|
||||
"pages": [
|
||||
"user-guide/creating-projects",
|
||||
"user-guide/creating-tasks",
|
||||
"user-guide/creating-task-attempts",
|
||||
"user-guide/creating-task-templates",
|
||||
"user-guide/agent-configurations",
|
||||
"user-guide/vibe-kanban-mcp-server"
|
||||
"configuration-customisation/global-settings",
|
||||
"configuration-customisation/agent-configurations",
|
||||
"configuration-customisation/creating-task-templates",
|
||||
"configuration-customisation/keyboard-shortcuts"
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "Integrations",
|
||||
"pages": [
|
||||
"integrations/github-integration",
|
||||
"integrations/vscode-extension",
|
||||
"integrations/mcp-server-configuration",
|
||||
"integrations/vibe-kanban-mcp-server"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
---
|
||||
title: 'Code blocks'
|
||||
description: 'Display inline code and code blocks'
|
||||
icon: 'code'
|
||||
---
|
||||
|
||||
## Inline code
|
||||
|
||||
To denote a `word` or `phrase` as code, enclose it in backticks (`).
|
||||
|
||||
```
|
||||
To denote a `word` or `phrase` as code, enclose it in backticks (`).
|
||||
```
|
||||
|
||||
## Code blocks
|
||||
|
||||
Use [fenced code blocks](https://www.markdownguide.org/extended-syntax/#fenced-code-blocks) by enclosing code in three backticks and follow the leading ticks with the programming language of your snippet to get syntax highlighting. Optionally, you can also write the name of your code after the programming language.
|
||||
|
||||
```java HelloWorld.java
|
||||
class HelloWorld {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Hello, World!");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
````md
|
||||
```java HelloWorld.java
|
||||
class HelloWorld {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Hello, World!");
|
||||
}
|
||||
}
|
||||
```
|
||||
````
|
||||
@@ -1,59 +0,0 @@
|
||||
---
|
||||
title: 'Images and embeds'
|
||||
description: 'Add image, video, and other HTML elements'
|
||||
icon: 'image'
|
||||
---
|
||||
|
||||
<img
|
||||
style={{ borderRadius: '0.5rem' }}
|
||||
src="https://mintlify-assets.b-cdn.net/bigbend.jpg"
|
||||
/>
|
||||
|
||||
## Image
|
||||
|
||||
### Using Markdown
|
||||
|
||||
The [markdown syntax](https://www.markdownguide.org/basic-syntax/#images) lets you add images using the following code
|
||||
|
||||
```md
|
||||

|
||||
```
|
||||
|
||||
Note that the image file size must be less than 5MB. Otherwise, we recommend hosting on a service like [Cloudinary](https://cloudinary.com/) or [S3](https://aws.amazon.com/s3/). You can then use that URL and embed.
|
||||
|
||||
### Using embeds
|
||||
|
||||
To get more customizability with images, you can also use [embeds](/writing-content/embed) to add images
|
||||
|
||||
```html
|
||||
<img height="200" src="/path/image.jpg" />
|
||||
```
|
||||
|
||||
## Embeds and HTML elements
|
||||
|
||||
<iframe
|
||||
width="560"
|
||||
height="315"
|
||||
src="https://www.youtube.com/embed/4KzFe50RQkQ"
|
||||
title="YouTube video player"
|
||||
frameBorder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
style={{ width: '100%', borderRadius: '0.5rem' }}
|
||||
></iframe>
|
||||
|
||||
<br />
|
||||
|
||||
<Tip>
|
||||
|
||||
Mintlify supports [HTML tags in Markdown](https://www.markdownguide.org/basic-syntax/#html). This is helpful if you prefer HTML tags to Markdown syntax, and lets you create documentation with infinite flexibility.
|
||||
|
||||
</Tip>
|
||||
|
||||
### iFrames
|
||||
|
||||
Loads another HTML page within the document. Most commonly used for embedding videos.
|
||||
|
||||
```html
|
||||
<iframe src="https://www.youtube.com/embed/4KzFe50RQkQ"> </iframe>
|
||||
```
|
||||
@@ -1,88 +0,0 @@
|
||||
---
|
||||
title: 'Markdown syntax'
|
||||
description: 'Text, title, and styling in standard markdown'
|
||||
icon: 'text-size'
|
||||
---
|
||||
|
||||
## Titles
|
||||
|
||||
Best used for section headers.
|
||||
|
||||
```md
|
||||
## Titles
|
||||
```
|
||||
|
||||
### Subtitles
|
||||
|
||||
Best used for subsection headers.
|
||||
|
||||
```md
|
||||
### Subtitles
|
||||
```
|
||||
|
||||
<Tip>
|
||||
|
||||
Each **title** and **subtitle** creates an anchor and also shows up on the table of contents on the right.
|
||||
|
||||
</Tip>
|
||||
|
||||
## Text formatting
|
||||
|
||||
We support most markdown formatting. Simply add `**`, `_`, or `~` around text to format it.
|
||||
|
||||
| Style | How to write it | Result |
|
||||
| ------------- | ----------------- | --------------- |
|
||||
| Bold | `**bold**` | **bold** |
|
||||
| Italic | `_italic_` | _italic_ |
|
||||
| Strikethrough | `~strikethrough~` | ~strikethrough~ |
|
||||
|
||||
You can combine these. For example, write `**_bold and italic_**` to get **_bold and italic_** text.
|
||||
|
||||
You need to use HTML to write superscript and subscript text. That is, add `<sup>` or `<sub>` around your text.
|
||||
|
||||
| Text Size | How to write it | Result |
|
||||
| ----------- | ------------------------ | ---------------------- |
|
||||
| Superscript | `<sup>superscript</sup>` | <sup>superscript</sup> |
|
||||
| Subscript | `<sub>subscript</sub>` | <sub>subscript</sub> |
|
||||
|
||||
## Linking to pages
|
||||
|
||||
You can add a link by wrapping text in `[]()`. You would write `[link to google](https://google.com)` to [link to google](https://google.com).
|
||||
|
||||
Links to pages in your docs need to be root-relative. Basically, you should include the entire folder path. For example, `[link to text](/writing-content/text)` links to the page "Text" in our components section.
|
||||
|
||||
Relative links like `[link to text](../text)` will open slower because we cannot optimize them as easily.
|
||||
|
||||
## Blockquotes
|
||||
|
||||
### Singleline
|
||||
|
||||
To create a blockquote, add a `>` in front of a paragraph.
|
||||
|
||||
> Dorothy followed her through many of the beautiful rooms in her castle.
|
||||
|
||||
```md
|
||||
> Dorothy followed her through many of the beautiful rooms in her castle.
|
||||
```
|
||||
|
||||
### Multiline
|
||||
|
||||
> Dorothy followed her through many of the beautiful rooms in her castle.
|
||||
>
|
||||
> The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood.
|
||||
|
||||
```md
|
||||
> Dorothy followed her through many of the beautiful rooms in her castle.
|
||||
>
|
||||
> The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood.
|
||||
```
|
||||
|
||||
### LaTeX
|
||||
|
||||
Mintlify supports [LaTeX](https://www.latex-project.org) through the Latex component.
|
||||
|
||||
<Latex>8 x (vk x H1 - H2) = (0,1)</Latex>
|
||||
|
||||
```md
|
||||
<Latex>8 x (vk x H1 - H2) = (0,1)</Latex>
|
||||
```
|
||||
@@ -1,87 +0,0 @@
|
||||
---
|
||||
title: 'Navigation'
|
||||
description: 'The navigation field in docs.json defines the pages that go in the navigation menu'
|
||||
icon: 'map'
|
||||
---
|
||||
|
||||
The navigation menu is the list of links on every website.
|
||||
|
||||
You will likely update `docs.json` every time you add a new page. Pages do not show up automatically.
|
||||
|
||||
## Navigation syntax
|
||||
|
||||
Our navigation syntax is recursive which means you can make nested navigation groups. You don't need to include `.mdx` in page names.
|
||||
|
||||
<CodeGroup>
|
||||
|
||||
```json Regular Navigation
|
||||
"navigation": {
|
||||
"tabs": [
|
||||
{
|
||||
"tab": "Docs",
|
||||
"groups": [
|
||||
{
|
||||
"group": "Getting Started",
|
||||
"pages": ["quickstart"]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
```json Nested Navigation
|
||||
"navigation": {
|
||||
"tabs": [
|
||||
{
|
||||
"tab": "Docs",
|
||||
"groups": [
|
||||
{
|
||||
"group": "Getting Started",
|
||||
"pages": [
|
||||
"quickstart",
|
||||
{
|
||||
"group": "Nested Reference Pages",
|
||||
"pages": ["nested-reference-page"]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</CodeGroup>
|
||||
|
||||
## Folders
|
||||
|
||||
Simply put your MDX files in folders and update the paths in `docs.json`.
|
||||
|
||||
For example, to have a page at `https://yoursite.com/your-folder/your-page` you would make a folder called `your-folder` containing an MDX file called `your-page.mdx`.
|
||||
|
||||
<Warning>
|
||||
|
||||
You cannot use `api` for the name of a folder unless you nest it inside another folder. Mintlify uses Next.js which reserves the top-level `api` folder for internal server calls. A folder name such as `api-reference` would be accepted.
|
||||
|
||||
</Warning>
|
||||
|
||||
```json Navigation With Folder
|
||||
"navigation": {
|
||||
"tabs": [
|
||||
{
|
||||
"tab": "Docs",
|
||||
"groups": [
|
||||
{
|
||||
"group": "Group Name",
|
||||
"pages": ["your-folder/your-page"]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Hidden pages
|
||||
|
||||
MDX files not included in `docs.json` will not show up in the sidebar but are accessible through the search bar and by linking directly to them.
|
||||
@@ -1,110 +0,0 @@
|
||||
---
|
||||
title: "Reusable snippets"
|
||||
description: "Reusable, custom snippets to keep content in sync"
|
||||
icon: "recycle"
|
||||
---
|
||||
|
||||
import SnippetIntro from '/snippets/snippet-intro.mdx';
|
||||
|
||||
<SnippetIntro />
|
||||
|
||||
## Creating a custom snippet
|
||||
|
||||
**Pre-condition**: You must create your snippet file in the `snippets` directory.
|
||||
|
||||
<Note>
|
||||
Any page in the `snippets` directory will be treated as a snippet and will not
|
||||
be rendered into a standalone page. If you want to create a standalone page
|
||||
from the snippet, import the snippet into another file and call it as a
|
||||
component.
|
||||
</Note>
|
||||
|
||||
### Default export
|
||||
|
||||
1. Add content to your snippet file that you want to re-use across multiple
|
||||
locations. Optionally, you can add variables that can be filled in via props
|
||||
when you import the snippet.
|
||||
|
||||
```mdx snippets/my-snippet.mdx
|
||||
Hello world! This is my content I want to reuse across pages. My keyword of the
|
||||
day is {word}.
|
||||
```
|
||||
|
||||
<Warning>
|
||||
The content that you want to reuse must be inside the `snippets` directory in
|
||||
order for the import to work.
|
||||
</Warning>
|
||||
|
||||
2. Import the snippet into your destination file.
|
||||
|
||||
```mdx destination-file.mdx
|
||||
---
|
||||
title: My title
|
||||
description: My Description
|
||||
---
|
||||
|
||||
import MySnippet from '/snippets/path/to/my-snippet.mdx';
|
||||
|
||||
## Header
|
||||
|
||||
Lorem impsum dolor sit amet.
|
||||
|
||||
<MySnippet word="bananas" />
|
||||
```
|
||||
|
||||
### Reusable variables
|
||||
|
||||
1. Export a variable from your snippet file:
|
||||
|
||||
```mdx snippets/path/to/custom-variables.mdx
|
||||
export const myName = 'my name';
|
||||
|
||||
export const myObject = { fruit: 'strawberries' };
|
||||
```
|
||||
|
||||
2. Import the snippet from your destination file and use the variable:
|
||||
|
||||
```mdx destination-file.mdx
|
||||
---
|
||||
title: My title
|
||||
description: My Description
|
||||
---
|
||||
|
||||
import { myName, myObject } from '/snippets/path/to/custom-variables.mdx';
|
||||
|
||||
Hello, my name is {myName} and I like {myObject.fruit}.
|
||||
```
|
||||
|
||||
### Reusable components
|
||||
|
||||
1. Inside your snippet file, create a component that takes in props by exporting
|
||||
your component in the form of an arrow function.
|
||||
|
||||
```mdx snippets/custom-component.mdx
|
||||
export const MyComponent = ({ title }) => (
|
||||
<div>
|
||||
<h1>{title}</h1>
|
||||
<p>... snippet content ...</p>
|
||||
</div>
|
||||
);
|
||||
```
|
||||
|
||||
<Warning>
|
||||
MDX does not compile inside the body of an arrow function. Stick to HTML
|
||||
syntax when you can or use a default export if you need to use MDX.
|
||||
</Warning>
|
||||
|
||||
2. Import the snippet into your destination file and pass in the props
|
||||
|
||||
```mdx destination-file.mdx
|
||||
---
|
||||
title: My title
|
||||
description: My Description
|
||||
---
|
||||
|
||||
import { MyComponent } from '/snippets/custom-component.mdx';
|
||||
|
||||
Lorem ipsum dolor sit amet.
|
||||
|
||||
<MyComponent title={'Custom title'} />
|
||||
```
|
||||
@@ -1,318 +0,0 @@
|
||||
---
|
||||
title: 'Global Settings'
|
||||
description: 'Mintlify gives you complete control over the look and feel of your documentation using the docs.json file'
|
||||
icon: 'gear'
|
||||
---
|
||||
|
||||
Every Mintlify site needs a `docs.json` file with the core configuration settings. Learn more about the [properties](#properties) below.
|
||||
|
||||
## Properties
|
||||
|
||||
<ResponseField name="name" type="string" required>
|
||||
Name of your project. Used for the global title.
|
||||
|
||||
Example: `mintlify`
|
||||
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="navigation" type="Navigation[]" required>
|
||||
An array of groups with all the pages within that group
|
||||
<Expandable title="Navigation">
|
||||
<ResponseField name="group" type="string">
|
||||
The name of the group.
|
||||
|
||||
Example: `Settings`
|
||||
|
||||
</ResponseField>
|
||||
<ResponseField name="pages" type="string[]">
|
||||
The relative paths to the markdown files that will serve as pages.
|
||||
|
||||
Example: `["customization", "page"]`
|
||||
|
||||
</ResponseField>
|
||||
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="logo" type="string or object">
|
||||
Path to logo image or object with path to "light" and "dark" mode logo images
|
||||
<Expandable title="Logo">
|
||||
<ResponseField name="light" type="string">
|
||||
Path to the logo in light mode
|
||||
</ResponseField>
|
||||
<ResponseField name="dark" type="string">
|
||||
Path to the logo in dark mode
|
||||
</ResponseField>
|
||||
<ResponseField name="href" type="string" default="/">
|
||||
Where clicking on the logo links you to
|
||||
</ResponseField>
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="favicon" type="string">
|
||||
Path to the favicon image
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="colors" type="Colors">
|
||||
Hex color codes for your global theme
|
||||
<Expandable title="Colors">
|
||||
<ResponseField name="primary" type="string" required>
|
||||
The primary color. Used for most often for highlighted content, section
|
||||
headers, accents, in light mode
|
||||
</ResponseField>
|
||||
<ResponseField name="light" type="string">
|
||||
The primary color for dark mode. Used for most often for highlighted
|
||||
content, section headers, accents, in dark mode
|
||||
</ResponseField>
|
||||
<ResponseField name="dark" type="string">
|
||||
The primary color for important buttons
|
||||
</ResponseField>
|
||||
<ResponseField name="background" type="object">
|
||||
The color of the background in both light and dark mode
|
||||
<Expandable title="Object">
|
||||
<ResponseField name="light" type="string" required>
|
||||
The hex color code of the background in light mode
|
||||
</ResponseField>
|
||||
<ResponseField name="dark" type="string" required>
|
||||
The hex color code of the background in dark mode
|
||||
</ResponseField>
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="topbarLinks" type="TopbarLink[]">
|
||||
Array of `name`s and `url`s of links you want to include in the topbar
|
||||
<Expandable title="TopbarLink">
|
||||
<ResponseField name="name" type="string">
|
||||
The name of the button.
|
||||
|
||||
Example: `Contact us`
|
||||
</ResponseField>
|
||||
<ResponseField name="url" type="string">
|
||||
The url once you click on the button. Example: `https://mintlify.com/docs`
|
||||
</ResponseField>
|
||||
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="topbarCtaButton" type="Call to Action">
|
||||
<Expandable title="Topbar Call to Action">
|
||||
<ResponseField name="type" type={'"link" or "github"'} default="link">
|
||||
Link shows a button. GitHub shows the repo information at the url provided including the number of GitHub stars.
|
||||
</ResponseField>
|
||||
<ResponseField name="url" type="string">
|
||||
If `link`: What the button links to.
|
||||
|
||||
If `github`: Link to the repository to load GitHub information from.
|
||||
</ResponseField>
|
||||
<ResponseField name="name" type="string">
|
||||
Text inside the button. Only required if `type` is a `link`.
|
||||
</ResponseField>
|
||||
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="versions" type="string[]">
|
||||
Array of version names. Only use this if you want to show different versions
|
||||
of docs with a dropdown in the navigation bar.
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="anchors" type="Anchor[]">
|
||||
An array of the anchors, includes the `icon`, `color`, and `url`.
|
||||
<Expandable title="Anchor">
|
||||
<ResponseField name="icon" type="string">
|
||||
The [Font Awesome](https://fontawesome.com/search?q=heart) icon used to feature the anchor.
|
||||
|
||||
Example: `comments`
|
||||
</ResponseField>
|
||||
<ResponseField name="name" type="string">
|
||||
The name of the anchor label.
|
||||
|
||||
Example: `Community`
|
||||
</ResponseField>
|
||||
<ResponseField name="url" type="string">
|
||||
The start of the URL that marks what pages go in the anchor. Generally, this is the name of the folder you put your pages in.
|
||||
</ResponseField>
|
||||
<ResponseField name="color" type="string">
|
||||
The hex color of the anchor icon background. Can also be a gradient if you pass an object with the properties `from` and `to` that are each a hex color.
|
||||
</ResponseField>
|
||||
<ResponseField name="version" type="string">
|
||||
Used if you want to hide an anchor until the correct docs version is selected.
|
||||
</ResponseField>
|
||||
<ResponseField name="isDefaultHidden" type="boolean" default="false">
|
||||
Pass `true` if you want to hide the anchor until you directly link someone to docs inside it.
|
||||
</ResponseField>
|
||||
<ResponseField name="iconType" default="duotone" type="string">
|
||||
One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin"
|
||||
</ResponseField>
|
||||
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="topAnchor" type="Object">
|
||||
Override the default configurations for the top-most anchor.
|
||||
<Expandable title="Object">
|
||||
<ResponseField name="name" default="Documentation" type="string">
|
||||
The name of the top-most anchor
|
||||
</ResponseField>
|
||||
<ResponseField name="icon" default="book-open" type="string">
|
||||
Font Awesome icon.
|
||||
</ResponseField>
|
||||
<ResponseField name="iconType" default="duotone" type="string">
|
||||
One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin"
|
||||
</ResponseField>
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="tabs" type="Tabs[]">
|
||||
An array of navigational tabs.
|
||||
<Expandable title="Tabs">
|
||||
<ResponseField name="name" type="string">
|
||||
The name of the tab label.
|
||||
</ResponseField>
|
||||
<ResponseField name="url" type="string">
|
||||
The start of the URL that marks what pages go in the tab. Generally, this
|
||||
is the name of the folder you put your pages in.
|
||||
</ResponseField>
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="api" type="API">
|
||||
Configuration for API settings. Learn more about API pages at [API Components](/api-playground/demo).
|
||||
<Expandable title="API">
|
||||
<ResponseField name="baseUrl" type="string">
|
||||
The base url for all API endpoints. If `baseUrl` is an array, it will enable for multiple base url
|
||||
options that the user can toggle.
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="auth" type="Auth">
|
||||
<Expandable title="Auth">
|
||||
<ResponseField name="method" type='"bearer" | "basic" | "key"'>
|
||||
The authentication strategy used for all API endpoints.
|
||||
</ResponseField>
|
||||
<ResponseField name="name" type="string">
|
||||
The name of the authentication parameter used in the API playground.
|
||||
|
||||
If method is `basic`, the format should be `[usernameName]:[passwordName]`
|
||||
</ResponseField>
|
||||
<ResponseField name="inputPrefix" type="string">
|
||||
The default value that's designed to be a prefix for the authentication input field.
|
||||
|
||||
E.g. If an `inputPrefix` of `AuthKey` would inherit the default input result of the authentication field as `AuthKey`.
|
||||
</ResponseField>
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="playground" type="Playground">
|
||||
Configurations for the API playground
|
||||
|
||||
<Expandable title="Playground">
|
||||
<ResponseField name="mode" default="show" type='"show" | "simple" | "hide"'>
|
||||
Whether the playground is showing, hidden, or only displaying the endpoint with no added user interactivity `simple`
|
||||
|
||||
Learn more at the [playground guides](/api-playground/demo)
|
||||
</ResponseField>
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="maintainOrder" type="boolean">
|
||||
Enabling this flag ensures that key ordering in OpenAPI pages matches the key ordering defined in the OpenAPI file.
|
||||
|
||||
<Warning>This behavior will soon be enabled by default, at which point this field will be deprecated.</Warning>
|
||||
</ResponseField>
|
||||
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="openapi" type="string | string[]">
|
||||
A string or an array of strings of URL(s) or relative path(s) pointing to your
|
||||
OpenAPI file.
|
||||
|
||||
Examples:
|
||||
<CodeGroup>
|
||||
```json Absolute
|
||||
"openapi": "https://example.com/openapi.json"
|
||||
```
|
||||
```json Relative
|
||||
"openapi": "/openapi.json"
|
||||
```
|
||||
```json Multiple
|
||||
"openapi": ["https://example.com/openapi1.json", "/openapi2.json", "/openapi3.json"]
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="footerSocials" type="FooterSocials">
|
||||
An object of social media accounts where the key:property pair represents the social media platform and the account url.
|
||||
|
||||
Example:
|
||||
```json
|
||||
{
|
||||
"x": "https://x.com/mintlify",
|
||||
"website": "https://mintlify.com"
|
||||
}
|
||||
```
|
||||
<Expandable title="FooterSocials">
|
||||
<ResponseField name="[key]" type="string">
|
||||
One of the following values `website`, `facebook`, `x`, `discord`, `slack`, `github`, `linkedin`, `instagram`, `hacker-news`
|
||||
|
||||
Example: `x`
|
||||
</ResponseField>
|
||||
<ResponseField name="property" type="string">
|
||||
The URL to the social platform.
|
||||
|
||||
Example: `https://x.com/mintlify`
|
||||
</ResponseField>
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="feedback" type="Feedback">
|
||||
Configurations to enable feedback buttons
|
||||
|
||||
<Expandable title="Feedback">
|
||||
<ResponseField name="suggestEdit" type="boolean" default="false">
|
||||
Enables a button to allow users to suggest edits via pull requests
|
||||
</ResponseField>
|
||||
<ResponseField name="raiseIssue" type="boolean" default="false">
|
||||
Enables a button to allow users to raise an issue about the documentation
|
||||
</ResponseField>
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="modeToggle" type="ModeToggle">
|
||||
Customize the dark mode toggle.
|
||||
<Expandable title="ModeToggle">
|
||||
<ResponseField name="default" type={'"light" or "dark"'}>
|
||||
Set if you always want to show light or dark mode for new users. When not
|
||||
set, we default to the same mode as the user's operating system.
|
||||
</ResponseField>
|
||||
<ResponseField name="isHidden" type="boolean" default="false">
|
||||
Set to true to hide the dark/light mode toggle. You can combine `isHidden` with `default` to force your docs to only use light or dark mode. For example:
|
||||
|
||||
<CodeGroup>
|
||||
```json Only Dark Mode
|
||||
"modeToggle": {
|
||||
"default": "dark",
|
||||
"isHidden": true
|
||||
}
|
||||
```
|
||||
|
||||
```json Only Light Mode
|
||||
"modeToggle": {
|
||||
"default": "light",
|
||||
"isHidden": true
|
||||
}
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
</ResponseField>
|
||||
|
||||
</Expandable>
|
||||
</ResponseField>
|
||||
|
||||
<ResponseField name="backgroundImage" type="string">
|
||||
A background image to be displayed behind every page. See example with
|
||||
[Infisical](https://infisical.com/docs) and [FRPC](https://frpc.io).
|
||||
</ResponseField>
|
||||
@@ -1,4 +1,8 @@
|
||||
# Install & Run Vibe Kanban
|
||||
---
|
||||
title: "Install & Run Vibe Kanban"
|
||||
description: "Complete installation guide for Vibe Kanban on macOS, Linux, and Windows"
|
||||
sidebarTitle: "Installation"
|
||||
---
|
||||
|
||||
## Supported Systems
|
||||
|
||||
@@ -8,30 +12,53 @@ We build and test Vibe Kanban on the following systems:
|
||||
- Linux
|
||||
- Windows
|
||||
|
||||
## Pre-requisites
|
||||
## Prerequisites
|
||||
|
||||
- Node.js
|
||||
- Coding agent authenticated
|
||||
- All supported coding agents can now be used via npx (no separate installation required)
|
||||
- You still need to authenticate with each coding agent outside of Vibe Kanban
|
||||
- You can find authentication instructions for each coding agent on their respective [websites](./supported-coding-agents).
|
||||
Before installing Vibe Kanban, ensure you have:
|
||||
|
||||
## Running Vibe Kanban
|
||||
- **Node.js**: Latest LTS version recommended
|
||||
- **Coding agent authentication**: Authenticate with your preferred coding agents outside of Vibe Kanban
|
||||
|
||||
1. Open a terminal and run:
|
||||
<Info>
|
||||
All supported coding agents can be used via npx without separate installation. You can find authentication instructions for each coding agent on their respective [websites](./supported-coding-agents).
|
||||
</Info>
|
||||
|
||||
```
|
||||
npx vibe-kanban
|
||||
```
|
||||
## Installation & Setup
|
||||
|
||||
2. [Complete the onboarding steps](/docs/getting-started/onboarding) in the application
|
||||
<Steps>
|
||||
<Step title="Install and launch Vibe Kanban">
|
||||
Open a terminal and run:
|
||||
|
||||
3. [Configure Global Settings](/docs/getting-started/global-settings) to personalize your experience
|
||||
```bash
|
||||
npx vibe-kanban
|
||||
```
|
||||
|
||||
4. [Create a project](/docs/user-guide/creating-projects)
|
||||
<Check>
|
||||
The application will bind to a random free port, print the URL in the terminal, and automatically open in your default browser.
|
||||
</Check>
|
||||
</Step>
|
||||
|
||||
5. [Create tasks](/docs/user-guide/creating-tasks)
|
||||
<Step title="Complete initial setup">
|
||||
Complete the setup dialogs to configure your coding agent and editor preferences. GitHub authentication is optional and can be configured later.
|
||||
</Step>
|
||||
|
||||
6. Optional: [Set up MCP integration](/docs/user-guide/vibe-kanban-mcp-server) to streamline task creation with coding agents
|
||||
<Step title="Create your first project">
|
||||
You'll land on an empty Projects page. Click "Create your first project" to set up your initial project.
|
||||
</Step>
|
||||
|
||||
A note on ports: By default the application will bind to a random free port, print the URL in the terminal and attempt to open the link in the default browser. If you would like to use a fixed port you can optionally specify the `PORT` environment variable, so to force Vibe Kanban to start on port 8080 you would run `PORT=8080 npx vibe-kanban`.
|
||||
<Step title="Add tasks">
|
||||
Start tracking your work by [creating tasks](/core-features/creating-tasks) within your project.
|
||||
</Step>
|
||||
|
||||
<Step title="Optional: Configure GitHub integration">
|
||||
Connect to GitHub in [Settings](/configuration-customisation/global-settings) to enable branch management and pull request creation.
|
||||
</Step>
|
||||
|
||||
<Step title="Optional: Set up MCP integration">
|
||||
Streamline task creation with coding agents by [setting up MCP integration](/integrations/vibe-kanban-mcp-server).
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
<Tip>
|
||||
To use a fixed port, specify the `PORT` environment variable: `PORT=8080 npx vibe-kanban`
|
||||
</Tip>
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
# Global Settings
|
||||
|
||||
You can configure application-wide settings via the **Settings** page. To access it, click the ⚙️ icon in the sidebar or select "Settings" from the top-right menu.
|
||||
|
||||

|
||||
|
||||
## Themes
|
||||
|
||||
Switch between light and dark themes to suit your preference.
|
||||
|
||||
## Default Agent Configuration
|
||||
|
||||
Choose the default agent and, if available, a variant. This profile is pre-selected when creating new task attempts and follow-ups.
|
||||
|
||||
- Pick an agent (e.g., CLAUDE_CODE, GEMINI, CODEX)
|
||||
- If that agent has variants, pick one (e.g., DEFAULT, PLAN, ROUTER)
|
||||
- You can change this per attempt in the create attempt dialog
|
||||
|
||||
## Editor Integration
|
||||
|
||||
Configure integration with your preferred code editor (e.g., VS Code) for a seamless development workflow.
|
||||
|
||||
## GitHub Integration
|
||||
|
||||
Link your GitHub account by providing a Personal Access Token (PAT) and authenticating. This enables branch management, pull request creation, and status tracking directly from Vibe Kanban.
|
||||
|
||||
## Notifications
|
||||
|
||||
Toggle sound effects and push notifications to stay informed about task status changes.
|
||||
|
||||
## Telemetry
|
||||
|
||||
Enable or disable telemetry data collection to help improve Vibe Kanban.
|
||||
|
||||
## Task Templates
|
||||
|
||||
Manage global task templates to accelerate task creation across all projects. Templates allow you to define a default title and description that can be reused when adding new tasks.
|
||||
|
||||
You can learn more about task templates on the [Task Templates](/docs/user-guide/creating-task-templates) page.
|
||||
|
||||
## Agent Settings (Profiles & Variants)
|
||||
|
||||
Define and customize agent variants under Settings → Agents. Variants let you maintain multiple configurations for the same agent (for example a CLAUDE_CODE "PLAN" variant). See the [Agent Profiles & Variants](/docs/user-guide/agent-configurations) guide for details and examples.
|
||||
|
||||
## Safety & Disclaimers
|
||||
|
||||
Manage acknowledgments and reset options for onboarding, safety disclaimers, and telemetry notices.
|
||||
|
||||
- **Onboarding**: Reset the onboarding process to rerun the initial setup.
|
||||
- **Safety Disclaimer**: Reset or review the safety disclaimer prompt.
|
||||
- **Telemetry Notice**: Reset or review the telemetry data collection acknowledgment.
|
||||
BIN
docs/images/add-line-comment.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 157 KiB |
BIN
docs/images/github-connect-settings.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
docs/images/github-device-code.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 2.3 MiB |
|
Before Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
docs/images/screenshot-create-subtask-button.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 290 KiB |
|
Before Width: | Height: | Size: 304 KiB After Width: | Height: | Size: 438 KiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 322 KiB |
|
Before Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 365 KiB |
|
Before Width: | Height: | Size: 439 KiB After Width: | Height: | Size: 413 KiB |
|
Before Width: | Height: | Size: 344 KiB |
|
Before Width: | Height: | Size: 326 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 241 KiB After Width: | Height: | Size: 275 KiB |
|
Before Width: | Height: | Size: 1.8 MiB |
BIN
docs/images/screenshot-subtask-parent-info.png
Normal file
|
After Width: | Height: | Size: 428 KiB |
|
Before Width: | Height: | Size: 82 KiB |
BIN
docs/images/screenshot-task-with-subtasks.png
Normal file
|
After Width: | Height: | Size: 773 KiB |
BIN
docs/images/task-attempt-push-button.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
@@ -1,294 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="212.8mm" height="25.88mm" viewBox="0 0 603.21 73.35">
|
||||
<polygon points="165.79 21.32 165.79 21.32 165.79 21.33 173 21.33 172.99 20.49 172.99 20.46 172.99 20.46 172.99 20.46 166.09 20.46 165.79 20.46 165.79 20.46 165.79 20.46 165.79 21.27 165.79 21.32"/>
|
||||
<polygon points="172.99 72.46 172.99 72.46 172.99 72.46 166.09 72.46 165.79 72.46 165.79 72.46 165.79 72.46 165.79 73.27 165.79 73.32 165.79 73.32 165.79 73.33 173 73.33 172.99 72.49 172.99 72.46"/>
|
||||
<polygon points="165.79 39.62 165.79 39.62 165.79 39.63 173 39.63 172.99 26.59 172.99 26.03 172.99 26.03 172.99 26.03 166.09 26.03 165.79 26.03 165.79 26.03 165.79 26.03 165.79 38.78 165.79 39.62"/>
|
||||
<polygon points="165.79 19.45 165.79 19.45 165.79 19.45 173 19.45 172.99 18.62 172.99 18.59 172.99 18.59 172.99 18.58 166.09 18.59 165.79 18.59 165.79 18.59 165.79 18.59 165.79 19.4 165.79 19.45"/>
|
||||
<polygon points="165.79 45.45 165.79 45.45 165.79 45.45 173 45.45 172.99 44.62 172.99 44.59 172.99 44.59 172.99 44.58 166.09 44.59 165.79 44.59 165.79 44.59 165.79 44.59 165.79 45.4 165.79 45.45"/>
|
||||
<polygon points="165.79 71.45 165.79 71.45 165.79 71.45 173 71.45 172.99 70.62 172.99 70.59 172.99 70.59 172.99 70.58 166.09 70.59 165.79 70.59 165.79 70.59 165.79 70.59 165.79 71.4 165.79 71.45"/>
|
||||
<polygon points="165.79 65.62 165.79 65.62 165.79 65.63 173 65.63 172.99 52.59 172.99 52.03 172.99 52.03 172.99 52.03 166.09 52.03 165.79 52.03 165.79 52.03 165.79 52.03 165.79 64.78 165.79 65.62"/>
|
||||
<polygon points="165.79 47.32 165.79 47.32 165.79 47.33 173 47.33 172.99 46.49 172.99 46.46 172.99 46.46 172.99 46.46 166.09 46.46 165.79 46.46 165.79 46.46 165.79 46.46 165.79 47.27 165.79 47.32"/>
|
||||
<polygon points="165.79 12.78 165.79 13.62 165.79 13.62 165.79 13.63 173 13.63 172.99 .59 172.99 .03 172.99 .03 172.99 .03 166.24 .03 165.79 .03 165.79 .03 165.79 .03 165.79 12.78"/>
|
||||
<polygon points="173 21.33 180.2 21.33 180.2 20.48 180.2 20.46 180.2 20.46 180.2 20.46 173.3 20.46 173 20.46 173 20.46 173 20.46 173 21.33"/>
|
||||
<polygon points="173 39.63 180.2 39.63 180.2 26.31 180.2 26.03 180.2 26.03 180.2 26.03 173.3 26.03 173 26.03 173 26.03 173 26.03 173 39.63"/>
|
||||
<polygon points="180.2 72.46 180.2 72.46 180.2 72.46 173.3 72.46 173 72.46 173 72.46 173 72.46 173 73.33 180.2 73.33 180.2 72.48 180.2 72.46"/>
|
||||
<polygon points="173 45.45 180.2 45.45 180.2 44.6 180.2 44.59 180.2 44.59 180.2 44.58 173.3 44.59 173 44.59 173 44.59 173 44.59 173 45.45"/>
|
||||
<polygon points="180.2 18.59 180.2 18.58 173.3 18.59 173 18.59 173 18.59 173 18.59 173 19.45 180.2 19.45 180.2 18.6 180.2 18.59 180.2 18.59"/>
|
||||
<polygon points="180.2 70.59 180.2 70.58 173.3 70.59 173 70.59 173 70.59 173 70.59 173 71.45 180.2 71.45 180.2 70.6 180.2 70.59 180.2 70.59"/>
|
||||
<polygon points="173 47.33 180.2 47.33 180.2 46.48 180.2 46.46 180.2 46.46 180.2 46.46 173.3 46.46 173 46.46 173 46.46 173 46.46 173 47.33"/>
|
||||
<polygon points="180.2 52.31 180.2 52.03 180.2 52.03 180.2 52.03 173.3 52.03 173 52.03 173 52.03 173 52.03 173 65.63 180.2 65.63 180.2 52.31"/>
|
||||
<polygon points="129.76 71.45 129.75 70.58 122.85 70.59 122.55 70.59 122.55 70.59 122.55 70.59 122.55 71.45 129.76 71.45"/>
|
||||
<polygon points="141.93 18.59 141.93 18.59 141.93 18.58 137.17 18.59 136.97 18.59 136.97 18.59 136.96 18.59 136.97 19.43 136.97 19.45 136.97 19.45 136.97 19.45 141.07 19.45 141.07 33.46 137.13 33.46 136.97 33.46 136.97 33.46 136.96 33.46 136.97 34.31 136.97 34.32 136.97 34.32 136.97 34.33 141.94 34.33 141.93 19.24 141.93 18.59"/>
|
||||
<polygon points="165.79 .03 165.79 .03 165.79 .03 159.03 .03 158.59 .03 158.59 .03 158.58 .03 158.59 12.78 158.59 13.62 158.59 13.62 158.59 13.63 165.79 13.63 165.79 .59 165.79 .03"/>
|
||||
<polygon points="136.96 57.59 136.96 57.59 136.96 57.58 132.19 57.59 131.99 57.59 131.99 57.59 131.99 57.59 131.99 70.58 129.85 70.59 129.76 70.59 129.76 70.59 129.76 70.59 129.76 71.43 129.76 71.45 129.76 71.45 129.76 71.45 132.85 71.45 132.85 59.26 132.85 58.45 136.96 58.45 136.96 57.66 136.96 57.59"/>
|
||||
<polygon points="141.93 44.59 141.93 44.59 141.93 44.58 137.17 44.59 136.97 44.59 136.97 44.59 136.96 44.59 136.97 45.43 136.97 45.45 136.97 45.45 136.97 45.45 141.07 45.45 141.07 59.46 137.13 59.46 136.97 59.46 136.97 59.46 136.96 59.46 136.97 60.31 136.97 60.32 136.97 60.32 136.97 60.33 141.94 60.33 141.93 45.24 141.93 44.59"/>
|
||||
<polygon points="136.96 13.03 136.96 13.03 136.96 13.03 134.82 13.03 134.73 13.03 134.73 6.05 134.73 5.59 134.73 5.59 134.73 5.58 130.07 5.59 129.76 5.59 129.76 5.59 129.76 5.59 129.76 6.43 129.76 6.45 129.76 6.45 129.76 6.45 133.86 6.45 133.87 13.03 132.9 13.03 132.85 13.03 132.85 7.81 132.85 7.46 132.85 7.46 132.85 7.46 129.95 7.46 129.76 7.46 129.76 7.46 129.76 7.46 129.76 8.31 129.76 8.32 129.76 8.32 129.76 8.33 131.99 8.32 131.99 13.03 129.85 13.03 129.76 13.03 129.76 13.03 129.76 13.03 129.76 26.34 129.76 26.62 129.76 26.62 129.76 26.63 136.96 26.63 136.96 14.16 136.96 13.03"/>
|
||||
<polygon points="136.96 60.32 136.96 59.53 136.96 59.46 136.96 59.46 136.96 59.46 133.99 59.46 133.87 59.46 133.87 59.46 133.86 59.46 133.87 72.46 129.93 72.46 129.76 72.46 129.76 72.46 129.76 72.46 129.76 73.31 129.76 73.32 129.76 73.32 129.76 73.33 134.73 73.33 134.73 61.14 134.73 60.33 136.96 60.32"/>
|
||||
<polygon points="122.85 72.46 122.55 72.46 122.55 72.46 122.55 72.46 122.55 73.33 129.76 73.33 129.75 72.46 122.85 72.46"/>
|
||||
<polygon points="122.55 65.63 129.76 65.63 129.75 .03 123 .03 122.55 .03 122.55 .03 122.55 .03 122.55 65.63"/>
|
||||
<polygon points="132.85 39.03 132.85 32.86 132.85 32.45 136.96 32.45 136.96 31.66 136.96 31.59 136.96 31.59 136.96 31.58 132.19 31.59 131.99 31.59 131.99 31.59 131.99 31.59 131.99 39.03 129.85 39.03 129.76 39.03 129.76 39.03 129.76 39.03 129.76 52.34 129.76 52.62 129.76 52.62 129.76 52.63 136.96 52.63 136.96 40.16 136.96 39.03 136.96 39.03 136.96 39.03 134.82 39.03 134.73 39.03 134.73 34.62 134.73 34.33 136.96 34.32 136.96 33.53 136.96 33.46 136.96 33.46 136.96 33.46 133.99 33.46 133.87 33.46 133.87 33.46 133.86 33.46 133.87 39.03 132.9 39.03 132.85 39.03"/>
|
||||
<polygon points="165.79 72.46 165.79 72.46 165.79 72.46 158.88 72.46 158.59 72.46 158.59 72.46 158.58 72.46 158.59 73.27 158.59 73.32 158.59 73.32 158.59 73.33 165.79 73.33 165.79 72.49 165.79 72.46"/>
|
||||
<polygon points="165.79 70.59 165.79 70.59 165.79 70.58 158.88 70.59 158.59 70.59 158.59 70.59 158.58 70.59 158.59 71.4 158.59 71.45 158.59 71.45 158.59 71.45 165.79 71.45 165.79 70.62 165.79 70.59"/>
|
||||
<polygon points="149.14 65.83 149.14 65.63 151.38 65.62 151.37 4.13 151.37 .03 151.37 .03 151.37 .03 144.62 .03 144.17 .03 144.17 .03 144.17 .03 144.17 62.89 144.17 65.62 144.17 65.62 144.17 65.63 146.4 65.62 146.4 73.16 146.4 73.32 146.4 73.32 146.4 73.33 151.38 73.33 151.37 72.51 151.37 72.46 151.37 72.46 151.37 72.46 147.44 72.46 147.27 72.46 147.27 65.91 147.27 65.63 148.28 65.62 148.28 71.33 148.28 71.45 148.28 71.45 148.28 71.45 151.38 71.45 151.37 70.64 151.37 70.59 151.37 70.59 151.37 70.58 149.24 70.59 149.14 70.59 149.14 65.83"/>
|
||||
<polygon points="161.72 52.03 161.68 52.03 161.68 45.59 161.68 45.45 165.79 45.45 165.79 44.62 165.79 44.59 165.79 44.59 165.79 44.58 161.02 44.59 160.82 44.59 160.82 44.59 160.82 44.59 160.82 51.72 160.82 52.03 158.68 52.03 158.59 52.03 158.59 52.03 158.58 52.03 158.59 64.78 158.59 65.62 158.59 65.62 158.59 65.63 165.79 65.63 165.79 52.59 165.79 52.03 165.79 52.03 165.79 52.03 163.65 52.03 163.56 52.03 163.55 47.42 163.55 47.33 165.79 47.32 165.79 46.49 165.79 46.46 165.79 46.46 165.79 46.46 162.82 46.46 162.69 46.46 162.69 46.46 162.69 46.46 162.69 51.8 162.69 52.03 161.72 52.03"/>
|
||||
<polygon points="158.58 72.46 158.58 72.46 158.58 72.46 151.68 72.46 151.38 72.46 151.38 72.46 151.38 72.46 151.38 73.29 151.38 73.32 151.38 73.32 151.38 73.33 158.58 73.33 158.58 72.51 158.58 72.46"/>
|
||||
<polygon points="158.58 .03 158.58 .03 158.58 .03 151.83 .03 151.38 .03 151.38 .03 151.38 .03 151.38 62.89 151.38 65.62 151.38 65.62 151.38 65.63 158.58 65.63 158.58 4.13 158.58 .03"/>
|
||||
<polygon points="158.58 70.59 158.58 70.59 158.58 70.58 151.68 70.59 151.38 70.59 151.38 70.59 151.38 70.59 151.38 71.41 151.38 71.45 151.38 71.45 151.38 71.45 158.58 71.45 158.58 70.64 158.58 70.59"/>
|
||||
<polygon points="173 13.63 180.2 13.63 180.2 .31 180.2 .03 180.2 .03 180.2 .03 173.45 .03 173 .03 173 .03 173 .03 173 13.63"/>
|
||||
<polygon points="209.04 39.63 216.24 39.63 216.24 26.03 209.33 26.03 209.04 26.03 209.04 26.03 209.03 26.03 209.04 39.63"/>
|
||||
<polygon points="216.54 46.46 216.24 46.46 216.24 46.46 216.24 46.46 216.24 47.33 223.45 47.33 223.44 46.46 216.54 46.46"/>
|
||||
<polygon points="209.04 44.59 209.04 44.59 209.03 44.59 209.04 45.45 216.24 45.45 216.24 44.58 209.33 44.59 209.04 44.59"/>
|
||||
<polygon points="216.24 44.59 216.24 44.59 216.24 44.59 216.24 45.45 223.45 45.45 223.44 44.58 216.54 44.59 216.24 44.59"/>
|
||||
<polygon points="201.83 39.63 209.03 39.63 209.03 26.03 202.13 26.03 201.83 26.03 201.83 26.03 201.83 26.03 201.83 39.63"/>
|
||||
<polygon points="201.83 44.59 201.83 44.59 201.83 44.59 201.83 45.45 209.03 45.45 209.03 44.58 202.13 44.59 201.83 44.59"/>
|
||||
<polygon points="216.24 39.63 223.45 39.63 223.44 26.03 216.54 26.03 216.24 26.03 216.24 26.03 216.24 26.03 216.24 39.63"/>
|
||||
<polygon points="209.33 46.46 209.04 46.46 209.04 46.46 209.03 46.46 209.04 47.33 216.24 47.33 216.24 46.46 209.33 46.46"/>
|
||||
<polygon points="233.92 72.46 233.75 72.46 233.75 66.2 233.75 65.63 234.76 65.62 234.76 71.45 237.86 71.45 237.86 70.58 235.72 70.59 235.63 70.59 235.63 66.04 235.63 65.63 237.86 65.62 237.86 .03 231.1 .03 230.66 .03 230.66 .03 230.65 .03 230.66 65.63 232.89 65.62 232.89 73.33 237.86 73.33 237.86 72.46 233.92 72.46"/>
|
||||
<polygon points="252.27 45.45 252.27 44.58 247.51 44.59 247.3 44.59 247.3 44.59 247.3 44.59 247.3 70.58 245.16 70.59 245.07 70.59 245.07 70.59 245.07 70.59 245.07 71.43 245.07 71.45 245.07 71.45 245.07 71.45 248.17 71.45 248.16 47.08 248.16 45.45 252.27 45.45"/>
|
||||
<polygon points="252.27 47.32 252.27 46.46 249.3 46.46 249.18 46.46 249.18 46.46 249.17 46.46 249.18 72.46 245.24 72.46 245.07 72.46 245.07 72.46 245.07 72.46 245.07 73.31 245.07 73.32 245.07 73.32 245.07 73.33 250.04 73.33 250.04 48.95 250.04 47.33 252.27 47.32"/>
|
||||
<polygon points="245.07 26.03 245.07 26.03 245.07 26.03 245.07 39.34 245.07 39.62 245.07 39.62 245.07 39.63 252.27 39.63 252.27 26.03 250.13 26.03 250.04 26.03 250.04 6.86 250.04 5.59 250.04 5.59 250.04 5.58 245.38 5.59 245.07 5.59 245.07 5.59 245.07 5.59 245.07 6.43 245.07 6.45 245.07 6.45 245.07 6.45 249.17 6.45 249.18 26.03 248.21 26.03 248.17 26.03 248.16 8.62 248.16 7.46 248.16 7.46 248.16 7.46 245.26 7.46 245.07 7.46 245.07 7.46 245.07 7.46 245.07 8.31 245.07 8.32 245.07 8.32 245.07 8.33 247.3 8.32 247.3 26.03 245.16 26.03 245.07 26.03"/>
|
||||
<polygon points="223.65 31.59 223.45 31.59 223.45 31.59 223.45 31.59 223.45 32.45 227.55 32.45 227.56 46.46 223.62 46.46 223.45 46.46 223.45 46.46 223.45 46.46 223.45 47.33 228.42 47.33 228.42 31.58 223.65 31.59"/>
|
||||
<polygon points="237.86 65.63 245.07 65.63 245.06 .03 238.31 .03 237.86 .03 237.86 .03 237.86 .03 237.86 65.63"/>
|
||||
<polygon points="202.13 46.46 201.83 46.46 201.83 46.46 201.83 46.46 201.83 47.33 209.03 47.33 209.03 46.46 202.13 46.46"/>
|
||||
<polygon points="238.16 72.46 237.86 72.46 237.86 72.46 237.86 72.46 237.86 73.33 245.07 73.33 245.06 72.46 238.16 72.46"/>
|
||||
<polygon points="237.86 70.59 237.86 70.59 237.86 70.59 237.86 71.45 245.07 71.45 245.06 70.58 238.16 70.59 237.86 70.59"/>
|
||||
<polygon points="180.21 13.63 187.41 13.63 187.41 .31 187.41 .03 187.41 .03 187.41 .03 180.65 .03 180.21 .03 180.21 .03 180.2 .03 180.21 13.63"/>
|
||||
<polygon points="187.71 72.46 187.41 72.46 187.41 72.46 187.41 72.46 187.41 73.33 194.62 73.33 194.62 72.46 187.71 72.46"/>
|
||||
<polygon points="187.41 72.46 187.41 72.46 187.41 72.46 180.5 72.46 180.21 72.46 180.21 72.46 180.2 72.46 180.21 73.33 187.41 73.33 187.41 72.48 187.41 72.46"/>
|
||||
<polygon points="194.62 71.45 194.62 70.58 187.71 70.59 187.41 70.59 187.41 70.59 187.41 70.59 187.41 71.45 194.62 71.45"/>
|
||||
<polygon points="187.41 18.59 187.41 18.58 180.5 18.59 180.21 18.59 180.21 18.59 180.2 18.59 180.21 19.45 187.41 19.45 187.41 18.6 187.41 18.59 187.41 18.59"/>
|
||||
<polygon points="187.41 52.31 187.41 52.03 187.41 52.03 187.41 52.03 180.5 52.03 180.21 52.03 180.21 52.03 180.2 52.03 180.21 65.63 187.41 65.63 187.41 52.31"/>
|
||||
<polygon points="180.21 21.33 187.41 21.33 187.41 20.48 187.41 20.46 187.41 20.46 187.41 20.46 180.5 20.46 180.21 20.46 180.21 20.46 180.2 20.46 180.21 21.33"/>
|
||||
<polygon points="187.41 71.45 187.41 70.6 187.41 70.59 187.41 70.59 187.41 70.58 180.5 70.59 180.21 70.59 180.21 70.59 180.2 70.59 180.21 71.45 187.41 71.45"/>
|
||||
<polygon points="194.62 52.03 187.71 52.03 187.41 52.03 187.41 52.03 187.41 52.03 187.41 65.63 194.62 65.63 194.62 52.03"/>
|
||||
<polygon points="187.41 21.33 194.62 21.33 194.62 20.46 187.71 20.46 187.41 20.46 187.41 20.46 187.41 20.46 187.41 21.33"/>
|
||||
<polygon points="194.92 46.46 194.62 46.46 194.62 46.46 194.62 46.46 194.62 47.33 201.83 47.33 201.82 46.46 194.92 46.46"/>
|
||||
<polygon points="201.83 45.45 201.82 44.58 194.92 44.59 194.62 44.59 194.62 44.59 194.62 44.59 194.62 45.45 201.83 45.45"/>
|
||||
<polygon points="194.83 57.59 194.62 57.59 194.62 57.59 194.62 57.59 194.62 58.45 198.73 58.45 198.73 71.29 198.73 72.46 194.79 72.46 194.62 72.46 194.62 72.46 194.62 72.46 194.62 73.33 199.59 73.33 199.59 57.58 194.83 57.59"/>
|
||||
<polygon points="187.41 13.63 194.62 13.63 194.62 .03 187.86 .03 187.41 .03 187.41 .03 187.41 .03 187.41 13.63"/>
|
||||
<polygon points="194.62 26.03 194.62 26.03 194.62 26.03 194.62 39.63 201.83 39.63 201.82 26.03 194.92 26.03 194.62 26.03"/>
|
||||
<polygon points="192.38 39.63 194.62 39.62 194.62 26.03 187.71 26.03 187.41 26.03 187.41 26.03 187.41 26.03 187.41 39.63 189.64 39.62 189.65 46.68 189.65 47.32 189.65 47.32 189.65 47.33 194.62 47.33 194.62 46.46 190.68 46.46 190.51 46.46 190.51 39.63 191.52 39.62 191.52 44.96 191.52 45.45 191.52 45.45 191.52 45.45 194.62 45.45 194.62 44.58 192.48 44.59 192.39 44.59 192.38 39.63"/>
|
||||
<polygon points="194.62 18.58 187.71 18.59 187.41 18.59 187.41 18.59 187.41 18.59 187.41 19.45 194.62 19.45 194.62 18.58"/>
|
||||
<polygon points="338.76 71.45 338.76 71.45 341.86 71.45 341.86 20.46 338.89 20.46 338.76 20.46 338.76 20.46 338.76 20.46 338.76 21.2 338.76 21.32 338.76 21.32 338.76 21.33 340.99 21.32 340.99 70.58 338.85 70.59 338.76 70.59 338.76 70.59 338.76 70.59 338.76 71.32 338.76 71.45 338.76 71.45"/>
|
||||
<polygon points="17.71 72.46 17.54 72.46 17.54 65.63 18.55 65.62 18.55 71.45 21.65 71.45 21.65 70.58 19.51 70.59 19.42 70.59 19.41 65.63 21.65 65.62 21.65 39.03 19.51 39.03 19.42 39.03 19.41 5.58 14.75 5.59 14.45 5.59 14.45 5.59 14.44 5.59 14.45 6.45 18.55 6.45 18.55 39.03 17.58 39.03 17.54 39.03 17.54 7.46 14.64 7.46 14.45 7.46 14.45 7.46 14.44 7.46 14.45 8.33 16.67 8.32 16.68 39.03 14.54 39.03 14.45 39.03 14.45 39.03 14.44 39.03 14.45 65.63 16.67 65.62 16.68 73.33 21.65 73.33 21.65 72.46 17.71 72.46"/>
|
||||
<polygon points="79.31 71.45 79.31 71.45 82.41 71.45 82.4 7.46 79.5 7.46 79.31 7.46 79.31 7.46 79.31 7.46 79.31 8.31 79.31 8.32 79.31 8.32 79.31 8.33 81.54 8.32 81.54 70.58 79.4 70.59 79.31 70.59 79.31 70.59 79.31 70.59 79.31 71.43 79.31 71.45 79.31 71.45"/>
|
||||
<polygon points="28.85 70.59 28.85 70.58 21.95 70.59 21.65 70.59 21.65 70.59 21.65 70.59 21.65 71.45 28.86 71.45 28.85 70.6 28.85 70.59 28.85 70.59"/>
|
||||
<polygon points="21.65 52.03 21.65 52.03 21.65 52.03 21.65 65.63 28.86 65.63 28.85 52.31 28.85 52.03 28.85 52.03 28.85 52.03 26.72 52.03 26.62 52.03 26.62 44.58 21.86 44.59 21.65 44.59 21.65 44.59 21.65 44.59 21.65 45.45 25.76 45.45 25.76 52.03 24.79 52.03 24.75 52.03 24.75 46.46 21.78 46.46 21.65 46.46 21.65 46.46 21.65 46.46 21.65 47.33 23.88 47.32 23.88 52.03 21.74 52.03 21.65 52.03"/>
|
||||
<polygon points="57.68 47.32 57.68 46.46 54.71 46.46 54.59 46.46 54.59 46.46 54.58 46.46 54.59 59.19 54.59 59.46 50.65 59.46 50.48 59.46 50.48 59.46 50.48 59.46 50.48 60.33 55.45 60.33 55.45 47.6 55.45 47.33 57.68 47.32"/>
|
||||
<polygon points="29.16 72.46 28.86 72.46 28.86 72.46 28.86 72.46 28.86 73.33 36.06 73.33 36.06 72.46 29.16 72.46"/>
|
||||
<polygon points="5 39.63 7.24 39.62 7.23 .03 .48 .03 .03 .03 .03 .03 .03 .03 .03 39.63 2.26 39.62 2.26 47.33 7.24 47.33 7.23 46.46 3.3 46.46 3.13 46.46 3.12 39.63 4.14 39.62 4.14 45.45 7.24 45.45 7.23 44.58 5.1 44.59 5 44.59 5 39.63"/>
|
||||
<polygon points="12.21 52.63 14.44 52.62 14.44 .03 7.69 .03 7.24 .03 7.24 .03 7.24 .03 7.24 52.63 9.47 52.62 9.47 60.33 14.44 60.33 14.44 59.46 10.51 59.46 10.33 59.46 10.33 52.63 11.34 52.62 11.35 58.45 14.44 58.45 14.44 57.58 12.3 57.59 12.21 57.59 12.21 52.63"/>
|
||||
<polygon points="28.85 72.46 28.85 72.46 28.85 72.46 21.95 72.46 21.65 72.46 21.65 72.46 21.65 72.46 21.65 73.33 28.86 73.33 28.85 72.48 28.85 72.46"/>
|
||||
<polygon points="28.86 70.59 28.86 70.59 28.86 70.59 28.86 71.45 36.06 71.45 36.06 70.58 29.16 70.59 28.86 70.59"/>
|
||||
<polygon points="50.47 57.6 50.47 57.59 50.47 57.59 50.47 57.58 45.71 57.59 45.51 57.59 45.51 57.59 45.5 57.59 45.51 70.58 43.36 70.59 43.27 70.59 43.27 70.59 43.27 70.59 43.27 71.45 46.37 71.45 46.37 58.45 50.48 58.45 50.47 57.6"/>
|
||||
<polygon points="36.07 65.63 43.27 65.63 43.27 39.03 36.36 39.03 36.07 39.03 36.07 39.03 36.06 39.03 36.07 65.63"/>
|
||||
<polygon points="43.27 52.63 50.48 52.63 50.47 1.12 50.47 .03 50.47 .03 50.47 .03 43.72 .03 43.27 .03 43.27 .03 43.27 .03 43.27 52.63"/>
|
||||
<polygon points="50.47 59.48 50.47 59.46 50.47 59.46 50.47 59.46 47.51 59.46 47.38 59.46 47.38 59.46 47.38 59.46 47.38 72.46 43.44 72.46 43.27 72.46 43.27 72.46 43.27 72.46 43.27 73.33 48.25 73.33 48.24 60.33 50.48 60.32 50.47 59.48"/>
|
||||
<polygon points="28.86 65.63 36.06 65.63 36.06 52.03 29.16 52.03 28.86 52.03 28.86 52.03 28.86 52.03 28.86 65.63"/>
|
||||
<polygon points="36.36 72.46 36.07 72.46 36.07 72.46 36.06 72.46 36.07 73.33 43.27 73.33 43.27 72.46 36.36 72.46"/>
|
||||
<polygon points="36.07 70.59 36.07 70.59 36.06 70.59 36.07 71.45 43.27 71.45 43.27 70.58 36.36 70.59 36.07 70.59"/>
|
||||
<polygon points="57.69 45.45 57.69 45.45 60.78 45.45 60.78 7.46 57.88 7.46 57.69 7.46 57.69 7.46 57.68 7.46 57.69 8.31 57.69 8.32 57.69 8.32 57.69 8.33 59.92 8.32 59.92 44.58 57.78 44.59 57.69 44.59 57.69 44.59 57.68 44.59 57.69 45.43 57.69 45.45 57.69 45.45"/>
|
||||
<polygon points="471.58 46.46 471.58 46.46 468.61 46.46 468.49 46.46 468.49 46.46 468.49 46.46 468.49 47.33 470.72 47.32 470.72 56.09 470.72 57.58 468.58 57.59 468.49 57.59 468.49 57.59 468.49 57.59 468.49 58.45 471.58 58.45 471.58 47.46 471.58 46.46 471.58 46.46"/>
|
||||
<polygon points="252.57 46.46 252.28 46.46 252.28 46.46 252.27 46.46 252.28 47.31 252.28 47.32 252.28 47.32 252.28 47.33 259.48 47.33 259.48 46.46 252.57 46.46"/>
|
||||
<polygon points="413.93 13.03 413.93 7.46 413.93 7.46 413.93 7.46 411.02 7.46 410.83 7.46 410.83 7.46 410.83 7.46 410.83 8.33 413.06 8.32 413.06 66.69 413.06 70.58 410.92 70.59 410.83 70.59 410.83 70.59 410.83 70.59 410.83 71.45 413.93 71.45 413.93 18.12 413.93 13.62 413.93 13.03"/>
|
||||
<polygon points="136.97 57.59 136.97 57.59 136.96 57.59 136.97 58.43 136.97 58.45 136.97 58.45 136.97 58.45 140.06 58.45 140.06 46.96 140.06 46.46 140.06 46.46 140.06 46.46 137.09 46.46 136.97 46.46 136.97 46.46 136.96 46.46 136.97 47.31 136.97 47.32 136.97 47.32 136.97 47.33 139.19 47.32 139.2 57.58 137.06 57.59 136.97 57.59"/>
|
||||
<polygon points="281.2 18.59 281.11 18.59 281.11 18.59 281.1 18.59 281.11 19.4 281.11 19.45 281.11 19.45 281.11 19.45 284.2 19.45 284.2 7.71 284.2 7.46 284.2 7.46 284.2 7.46 281.3 7.46 281.11 7.46 281.11 7.46 281.1 7.46 281.11 8.27 281.11 8.32 281.11 8.32 281.11 8.33 283.34 8.32 283.34 18.16 283.34 18.58 281.2 18.59"/>
|
||||
<polygon points="598.22 70.59 598.22 70.59 598.21 70.59 598.21 71.45 601.31 71.45 601.31 7.46 598.41 7.46 598.22 7.46 598.22 7.46 598.21 7.46 598.21 8.33 600.44 8.32 600.45 70.58 598.31 70.59 598.22 70.59"/>
|
||||
<polygon points="526.14 71.45 526.14 71.45 529.24 71.45 529.24 20.46 526.27 20.46 526.14 20.46 526.14 20.46 526.14 20.46 526.14 21.24 526.14 21.32 526.14 21.32 526.14 21.33 528.37 21.32 528.38 70.58 526.23 70.59 526.14 70.59 526.14 70.59 526.14 70.59 526.14 71.36 526.14 71.45 526.14 71.45"/>
|
||||
<polygon points="471.58 20.46 471.58 20.46 468.61 20.46 468.49 20.46 468.49 20.46 468.49 20.46 468.49 21.33 470.72 21.32 470.72 30.09 470.72 31.58 468.58 31.59 468.49 31.59 468.49 31.59 468.49 31.59 468.49 32.45 471.58 32.45 471.58 21.46 471.58 20.46 471.58 20.46"/>
|
||||
<polygon points="281.2 70.59 281.11 70.59 281.11 70.59 281.1 70.59 281.11 71.4 281.11 71.45 281.11 71.45 281.11 71.45 284.2 71.45 284.2 59.71 284.2 59.46 284.2 59.46 284.2 59.46 281.23 59.46 281.11 59.46 281.11 59.46 281.1 59.46 281.11 60.27 281.11 60.32 281.11 60.32 281.11 60.33 283.34 60.32 283.34 70.16 283.34 70.58 281.2 70.59"/>
|
||||
<polygon points="180.21 47.33 185.18 47.33 185.18 31.58 180.41 31.59 180.21 31.59 180.21 31.59 180.2 31.59 180.21 32.45 184.31 32.45 184.31 45.58 184.31 46.46 180.38 46.46 180.21 46.46 180.21 46.46 180.2 46.46 180.21 47.33"/>
|
||||
<polygon points="180.3 44.59 180.21 44.59 180.21 44.59 180.2 44.59 180.21 45.45 183.3 45.45 183.3 33.46 180.33 33.46 180.21 33.46 180.21 33.46 180.2 33.46 180.21 34.33 182.44 34.32 182.44 43.94 182.44 44.58 180.3 44.59"/>
|
||||
<polygon points="136.97 31.59 136.97 31.59 136.96 31.59 136.97 32.43 136.97 32.45 136.97 32.45 136.97 32.45 140.06 32.45 140.06 20.96 140.06 20.46 140.06 20.46 140.06 20.46 137.09 20.46 136.97 20.46 136.97 20.46 136.96 20.46 136.97 21.31 136.97 21.32 136.97 21.32 136.97 21.33 139.19 21.32 139.2 31.58 137.06 31.59 136.97 31.59"/>
|
||||
<polygon points="194.62 6.45 198.73 6.45 198.73 19.29 198.73 20.46 194.79 20.46 194.62 20.46 194.62 20.46 194.62 20.46 194.62 21.33 199.59 21.33 199.59 5.58 194.93 5.59 194.62 5.59 194.62 5.59 194.62 5.59 194.62 6.45"/>
|
||||
<polygon points="196.85 8.32 196.85 17.73 196.85 18.58 194.71 18.59 194.62 18.59 194.62 18.59 194.62 18.59 194.62 19.45 197.72 19.45 197.72 7.46 194.81 7.46 194.62 7.46 194.62 7.46 194.62 7.46 194.62 8.33 196.85 8.32"/>
|
||||
<polygon points="197.72 71.45 197.72 59.46 194.75 59.46 194.62 59.46 194.62 59.46 194.62 59.46 194.62 60.33 196.85 60.32 196.85 69.73 196.85 70.58 194.71 70.59 194.62 70.59 194.62 70.59 194.62 70.59 194.62 71.45 197.72 71.45"/>
|
||||
<polygon points="223.45 44.59 223.45 44.59 223.45 44.59 223.45 45.45 226.55 45.45 226.54 33.46 223.58 33.46 223.45 33.46 223.45 33.46 223.45 33.46 223.45 34.33 225.68 34.32 225.68 44.58 223.54 44.59 223.45 44.59"/>
|
||||
<polygon points="108.13 44.59 108.14 45.45 115.34 45.45 115.34 44.58 108.43 44.59 108.14 44.59 108.14 44.59 108.13 44.59"/>
|
||||
<polygon points="108.43 72.46 108.14 72.46 108.14 72.46 108.13 72.46 108.14 73.33 115.34 73.33 115.34 72.46 108.43 72.46"/>
|
||||
<polygon points="108.13 26.03 108.14 39.63 115.34 39.63 115.34 26.03 108.43 26.03 108.14 26.03 108.14 26.03 108.13 26.03"/>
|
||||
<polygon points="115.34 13.63 122.55 13.63 122.55 .03 115.79 .03 115.34 .03 115.34 .03 115.34 .03 115.34 13.63"/>
|
||||
<polygon points="108.43 18.59 108.14 18.59 108.14 18.59 108.13 18.59 108.14 19.45 115.34 19.45 115.34 18.58 108.43 18.59"/>
|
||||
<polygon points="108.13 20.46 108.14 21.33 115.34 21.33 115.34 20.46 108.43 20.46 108.14 20.46 108.14 20.46 108.13 20.46"/>
|
||||
<polygon points="115.34 71.45 115.34 70.58 108.43 70.59 108.14 70.59 108.14 70.59 108.13 70.59 108.14 71.45 115.34 71.45"/>
|
||||
<polygon points="108.13 52.03 108.14 65.63 115.34 65.63 115.34 52.03 108.43 52.03 108.14 52.03 108.14 52.03 108.13 52.03"/>
|
||||
<polygon points="108.13 46.46 108.14 47.33 115.34 47.33 115.34 46.46 108.43 46.46 108.14 46.46 108.14 46.46 108.13 46.46"/>
|
||||
<polygon points="108.14 13.63 115.34 13.63 115.34 .03 108.58 .03 108.14 .03 108.14 .03 108.13 .03 108.14 13.63"/>
|
||||
<polygon points="122.55 44.58 115.64 44.59 115.34 44.59 115.34 44.59 115.34 44.59 115.34 45.45 122.55 45.45 122.55 44.58"/>
|
||||
<polygon points="122.55 26.03 115.64 26.03 115.34 26.03 115.34 26.03 115.34 26.03 115.34 39.63 122.55 39.63 122.55 26.03"/>
|
||||
<polygon points="122.55 20.46 115.64 20.46 115.34 20.46 115.34 20.46 115.34 20.46 115.34 21.33 122.55 21.33 122.55 20.46"/>
|
||||
<polygon points="122.55 18.58 115.64 18.59 115.34 18.59 115.34 18.59 115.34 18.59 115.34 19.45 122.55 19.45 122.55 18.58"/>
|
||||
<polygon points="115.64 72.46 115.34 72.46 115.34 72.46 115.34 72.46 115.34 73.33 122.55 73.33 122.55 72.46 115.64 72.46"/>
|
||||
<polygon points="122.55 71.45 122.55 70.58 115.64 70.59 115.34 70.59 115.34 70.59 115.34 70.59 115.34 71.45 122.55 71.45"/>
|
||||
<polygon points="122.55 52.03 115.64 52.03 115.34 52.03 115.34 52.03 115.34 52.03 115.34 65.63 122.55 65.63 122.55 52.03"/>
|
||||
<polygon points="115.34 46.46 115.34 46.46 115.34 46.46 115.34 47.33 122.55 47.33 122.55 46.46 115.64 46.46 115.34 46.46"/>
|
||||
<polygon points="108.13 71.45 108.13 70.58 101.23 70.59 100.93 70.59 100.93 70.59 100.93 70.59 100.93 71.45 108.13 71.45"/>
|
||||
<polygon points="72.1 65.63 79.31 65.63 79.3 .03 72.55 .03 72.1 .03 72.1 .03 72.1 .03 72.1 65.63"/>
|
||||
<polygon points="72.1 70.59 72.1 70.59 72.1 70.59 72.1 71.45 79.31 71.45 79.3 70.58 72.4 70.59 72.1 70.59"/>
|
||||
<polygon points="100.93 13.63 108.13 13.63 108.13 .03 101.38 .03 100.93 .03 100.93 .03 100.93 .03 100.93 13.63"/>
|
||||
<polygon points="72.4 72.46 72.1 72.46 72.1 72.46 72.1 72.46 72.1 73.33 79.31 73.33 79.3 72.46 72.4 72.46"/>
|
||||
<polygon points="79.62 5.59 79.31 5.59 79.31 5.59 79.31 5.59 79.31 6.43 79.31 6.45 79.31 6.45 79.31 6.45 83.41 6.45 83.42 72.46 79.48 72.46 79.31 72.46 79.31 72.46 79.31 72.46 79.31 73.31 79.31 73.32 79.31 73.32 79.31 73.33 84.28 73.33 84.28 5.58 79.62 5.59"/>
|
||||
<polygon points="50.48 39.63 57.68 39.63 57.68 .03 50.93 .03 50.48 .03 50.48 .03 50.48 .03 50.48 39.63"/>
|
||||
<polygon points="72.1 72.46 72.1 72.46 72.1 72.46 68.16 72.46 67.99 72.46 67.99 65.63 69 65.62 69 71.45 72.1 71.45 72.1 70.6 72.1 70.59 72.1 70.59 72.1 70.58 69.96 70.59 69.87 70.59 69.86 65.63 72.1 65.62 72.1 1.39 72.1 .03 72.1 .03 72.1 .03 65.34 .03 64.89 .03 64.89 .03 64.89 .03 64.89 65.63 67.12 65.62 67.13 73.33 72.1 73.33 72.1 72.48 72.1 72.46"/>
|
||||
<polygon points="58 5.59 57.69 5.59 57.69 5.59 57.68 5.59 57.69 6.43 57.69 6.45 57.69 6.45 57.69 6.45 61.79 6.45 61.79 46.46 57.86 46.46 57.69 46.46 57.69 46.46 57.68 46.46 57.69 47.31 57.69 47.32 57.69 47.32 57.69 47.33 62.66 47.33 62.66 5.58 58 5.59"/>
|
||||
<polygon points="89.78 72.46 89.61 72.46 89.61 65.63 90.62 65.62 90.62 71.45 93.72 71.45 93.72 70.58 91.58 70.59 91.49 70.59 91.48 65.63 93.72 65.62 93.72 .03 86.96 .03 86.52 .03 86.52 .03 86.51 .03 86.52 65.63 88.75 65.62 88.75 73.33 93.72 73.33 93.72 72.46 89.78 72.46"/>
|
||||
<polygon points="57.68 45.45 57.68 44.58 52.92 44.59 52.71 44.59 52.71 44.59 52.71 44.59 52.71 57.31 52.71 57.58 50.57 57.59 50.48 57.59 50.48 57.59 50.48 57.59 50.48 58.45 53.58 58.45 53.57 45.72 53.57 45.45 57.68 45.45"/>
|
||||
<polygon points="108.13 39.63 108.13 26.03 105.99 26.03 105.9 26.03 105.9 21.33 108.13 21.32 108.13 20.46 105.16 20.46 105.04 20.46 105.04 20.46 105.03 20.46 105.04 26.03 104.07 26.03 104.03 26.03 104.02 19.45 108.13 19.45 108.13 18.58 103.37 18.59 103.16 18.59 103.16 18.59 103.16 18.59 103.16 26.03 101.02 26.03 100.93 26.03 100.93 26.03 100.93 26.03 100.93 39.63 108.13 39.63"/>
|
||||
<polygon points="94.02 70.59 93.72 70.59 93.72 70.59 93.72 70.59 93.72 71.45 100.93 71.45 100.92 70.58 94.02 70.59"/>
|
||||
<polygon points="94.02 72.46 93.72 72.46 93.72 72.46 93.72 72.46 93.72 73.33 100.93 73.33 100.92 72.46 94.02 72.46"/>
|
||||
<polygon points="101.23 72.46 100.93 72.46 100.93 72.46 100.93 72.46 100.93 73.33 108.13 73.33 108.13 72.46 101.23 72.46"/>
|
||||
<polygon points="93.72 65.63 100.93 65.63 100.93 54.19 100.93 65.63 108.13 65.63 108.13 52.03 105.99 52.03 105.9 52.03 105.9 47.33 108.13 47.32 108.13 46.46 105.16 46.46 105.04 46.46 105.04 46.46 105.03 46.46 105.04 52.03 104.07 52.03 104.03 52.03 104.02 45.45 108.13 45.45 108.13 44.58 103.37 44.59 103.16 44.59 103.16 44.59 103.16 44.59 103.16 52.03 101.02 52.03 100.93 52.03 100.93 52.03 100.93 52.03 100.92 .03 94.17 .03 93.72 .03 93.72 .03 93.72 .03 93.72 65.63"/>
|
||||
<polygon points="161.72 26.03 161.68 26.03 161.68 19.59 161.68 19.45 165.79 19.45 165.79 18.62 165.79 18.59 165.79 18.59 165.79 18.58 161.02 18.59 160.82 18.59 160.82 18.59 160.82 18.59 160.82 25.72 160.82 26.03 158.68 26.03 158.59 26.03 158.59 26.03 158.58 26.03 158.59 38.78 158.59 39.62 158.59 39.62 158.59 39.63 165.79 39.63 165.79 26.59 165.79 26.03 165.79 26.03 165.79 26.03 163.65 26.03 163.56 26.03 163.55 21.42 163.55 21.33 165.79 21.32 165.79 20.49 165.79 20.46 165.79 20.46 165.79 20.46 162.82 20.46 162.69 20.46 162.69 20.46 162.69 20.46 162.69 25.8 162.69 26.03 161.72 26.03"/>
|
||||
<polygon points="473.46 18.59 473.46 18.59 473.46 18.58 468.69 18.59 468.49 18.59 468.49 18.59 468.49 18.59 468.49 19.45 472.59 19.45 472.6 31.41 472.6 33.46 468.66 33.46 468.49 33.46 468.49 33.46 468.49 33.46 468.49 34.33 473.46 34.33 473.46 19.89 473.46 18.59"/>
|
||||
<polygon points="439.66 47.33 446.86 47.33 446.86 46.46 439.96 46.46 439.66 46.46 439.66 46.46 439.66 46.46 439.66 47.33"/>
|
||||
<polygon points="473.46 44.59 473.46 44.59 473.46 44.58 468.69 44.59 468.49 44.59 468.49 44.59 468.49 44.59 468.49 45.45 472.59 45.45 472.6 57.41 472.6 59.46 468.66 59.46 468.49 59.46 468.49 59.46 468.49 59.46 468.49 60.33 473.46 60.33 473.46 45.89 473.46 44.59"/>
|
||||
<polygon points="478.96 72.46 478.79 72.46 478.79 66.05 478.79 65.63 479.8 65.62 479.8 70.48 479.8 71.45 479.8 71.45 479.8 71.45 482.9 71.45 482.9 70.58 480.76 70.59 480.67 70.59 480.66 65.94 480.66 65.63 482.9 65.62 482.9 13.03 475.99 13.03 475.7 13.03 475.7 13.03 475.69 13.03 475.7 64.53 475.7 65.62 475.7 65.62 475.7 65.63 477.92 65.62 477.93 72.04 477.93 73.32 477.93 73.32 477.93 73.33 482.9 73.33 482.9 72.46 478.96 72.46"/>
|
||||
<polygon points="252.57 44.59 252.28 44.59 252.28 44.59 252.27 44.59 252.28 45.43 252.28 45.45 252.28 45.45 252.28 45.45 259.48 45.45 259.48 44.58 252.57 44.59"/>
|
||||
<polygon points="468.49 60.32 468.48 59.46 465.51 59.46 465.39 59.46 465.39 59.46 465.39 59.46 465.39 70.56 465.39 72.46 461.45 72.46 461.28 72.46 461.28 72.46 461.28 72.46 461.28 73.33 466.25 73.33 466.25 61.41 466.25 60.33 468.49 60.32"/>
|
||||
<polygon points="468.49 58.45 468.48 57.58 463.72 57.59 463.51 57.59 463.51 57.59 463.51 57.59 463.51 68.69 463.51 70.58 461.37 70.59 461.28 70.59 461.28 70.59 461.28 70.59 461.28 71.45 464.38 71.45 464.38 59.53 464.38 58.45 468.49 58.45"/>
|
||||
<polygon points="468.49 52.63 468.48 39.03 466.35 39.03 466.25 39.03 466.25 34.72 466.25 34.33 468.49 34.32 468.48 33.46 465.51 33.46 465.39 33.46 465.39 33.46 465.39 33.46 465.39 38.22 465.39 39.03 464.42 39.03 464.38 39.03 464.38 33 464.38 32.45 468.49 32.45 468.48 31.58 463.72 31.59 463.51 31.59 463.51 31.59 463.51 31.59 463.51 37.94 463.51 39.03 461.37 39.03 461.28 39.03 461.28 39.03 461.28 39.03 461.28 52.63 468.49 52.63"/>
|
||||
<polygon points="482.9 64.26 482.9 65.62 482.9 65.62 482.9 65.63 490.11 65.63 490.1 .03 483.35 .03 482.9 .03 482.9 .03 482.9 .03 482.9 64.26"/>
|
||||
<polygon points="490.11 13.06 490.11 13.62 490.11 13.62 490.11 13.63 497.31 13.63 497.31 .03 490.56 .03 490.11 .03 490.11 .03 490.11 .03 490.11 13.06"/>
|
||||
<polygon points="497.61 46.46 497.32 46.46 497.32 46.46 497.31 46.46 497.32 47.29 497.32 47.32 497.32 47.32 497.32 47.33 504.52 47.33 504.52 46.46 497.61 46.46"/>
|
||||
<polygon points="497.32 45.45 497.32 45.45 504.52 45.45 504.52 44.58 497.61 44.59 497.32 44.59 497.32 44.59 497.31 44.59 497.32 45.41 497.32 45.45 497.32 45.45"/>
|
||||
<polygon points="490.11 39.62 490.11 39.62 490.11 39.63 497.31 39.63 497.31 26.03 495.17 26.03 495.08 26.03 495.08 21.52 495.08 21.33 497.31 21.32 497.31 20.46 494.34 20.46 494.22 20.46 494.22 20.46 494.21 20.46 494.22 26.03 493.25 26.03 493.21 26.03 493.2 19.72 493.2 19.45 497.31 19.45 497.31 18.58 492.55 18.59 492.34 18.59 492.34 18.59 492.34 18.59 492.34 26.03 490.2 26.03 490.11 26.03 490.11 26.03 490.11 26.03 490.11 39.06 490.11 39.62"/>
|
||||
<polygon points="504.52 26.03 497.61 26.03 497.32 26.03 497.32 26.03 497.31 26.03 497.32 39.06 497.32 39.62 497.32 39.62 497.32 39.63 504.52 39.63 504.52 26.03"/>
|
||||
<polygon points="482.9 71.45 482.9 71.45 490.11 71.45 490.1 70.58 483.2 70.59 482.9 70.59 482.9 70.59 482.9 70.59 482.9 71.43 482.9 71.45 482.9 71.45"/>
|
||||
<polygon points="497.31 45.45 497.31 44.58 492.55 44.59 492.34 44.59 492.34 44.59 492.34 44.59 492.34 70.58 490.2 70.59 490.11 70.59 490.11 70.59 490.11 70.59 490.11 71.41 490.11 71.45 490.11 71.45 490.11 71.45 493.21 71.45 493.2 46.53 493.2 45.45 497.31 45.45"/>
|
||||
<polygon points="497.31 47.32 497.31 46.46 494.34 46.46 494.22 46.46 494.22 46.46 494.21 46.46 494.22 72.46 490.28 72.46 490.11 72.46 490.11 72.46 490.11 72.46 490.11 73.29 490.11 73.32 490.11 73.32 490.11 73.33 495.08 73.33 495.08 48.41 495.08 47.33 497.31 47.32"/>
|
||||
<polygon points="454.07 65.63 461.28 65.63 461.28 .03 454.52 .03 454.07 .03 454.07 .03 454.07 .03 454.07 65.63"/>
|
||||
<polygon points="439.96 18.59 439.66 18.59 439.66 18.59 439.66 18.59 439.66 19.45 446.86 19.45 446.86 18.58 439.96 18.59"/>
|
||||
<polygon points="447.16 72.46 446.87 72.46 446.87 72.46 446.86 72.46 446.87 73.33 454.07 73.33 454.07 72.46 447.16 72.46"/>
|
||||
<polygon points="454.07 52.03 447.16 52.03 446.87 52.03 446.87 52.03 446.86 52.03 446.87 65.63 454.07 65.63 454.07 52.03"/>
|
||||
<polygon points="454.07 71.45 454.07 70.58 447.16 70.59 446.87 70.59 446.87 70.59 446.86 70.59 446.87 71.45 454.07 71.45"/>
|
||||
<polygon points="439.66 13.63 446.86 13.63 446.86 .03 440.11 .03 439.66 .03 439.66 .03 439.66 .03 439.66 13.63"/>
|
||||
<polygon points="439.66 45.45 446.86 45.45 446.86 44.58 439.96 44.59 439.66 44.59 439.66 44.59 439.66 44.59 439.66 45.45"/>
|
||||
<polygon points="439.66 21.33 446.86 21.33 446.86 20.46 439.96 20.46 439.66 20.46 439.66 20.46 439.66 20.46 439.66 21.33"/>
|
||||
<polygon points="439.66 39.63 446.86 39.63 446.86 26.03 439.96 26.03 439.66 26.03 439.66 26.03 439.66 26.03 439.66 39.63"/>
|
||||
<polygon points="446.87 46.46 446.87 46.46 446.86 46.46 446.87 47.33 454.07 47.33 454.07 46.46 447.16 46.46 446.87 46.46"/>
|
||||
<polygon points="446.87 13.63 454.07 13.63 454.07 .03 447.31 .03 446.87 .03 446.87 .03 446.86 .03 446.87 13.63"/>
|
||||
<polygon points="461.28 71.45 461.28 70.58 454.37 70.59 454.07 70.59 454.07 70.59 454.07 70.59 454.07 71.45 461.28 71.45"/>
|
||||
<polygon points="454.07 18.58 447.16 18.59 446.87 18.59 446.87 18.59 446.86 18.59 446.87 19.45 454.07 19.45 454.07 18.58"/>
|
||||
<polygon points="454.37 72.46 454.07 72.46 454.07 72.46 454.07 72.46 454.07 73.33 461.28 73.33 461.28 72.46 454.37 72.46"/>
|
||||
<polygon points="446.87 21.33 454.07 21.33 454.07 20.46 447.16 20.46 446.87 20.46 446.87 20.46 446.86 20.46 446.87 21.33"/>
|
||||
<polygon points="454.07 44.58 447.16 44.59 446.87 44.59 446.87 44.59 446.86 44.59 446.87 45.45 454.07 45.45 454.07 44.58"/>
|
||||
<polygon points="454.07 26.03 447.16 26.03 446.87 26.03 446.87 26.03 446.86 26.03 446.87 39.63 454.07 39.63 454.07 26.03"/>
|
||||
<polygon points="483.2 72.46 482.9 72.46 482.9 72.46 482.9 72.46 482.9 73.31 482.9 73.32 482.9 73.32 482.9 73.33 490.11 73.33 490.1 72.46 483.2 72.46"/>
|
||||
<polygon points="576.59 71.45 576.59 71.45 583.8 71.45 583.8 70.67 583.8 70.59 583.79 70.59 583.79 70.58 576.89 70.59 576.59 70.59 576.59 70.59 576.59 70.59 576.59 71.31 576.59 71.45 576.59 71.45"/>
|
||||
<polygon points="559.94 39.63 562.18 39.62 562.17 16.91 562.17 13.03 562.17 13.03 562.17 13.03 560.04 13.03 559.94 13.03 559.94 5.58 555.28 5.59 554.97 5.59 554.97 5.59 554.97 5.59 554.97 6.32 554.97 6.45 554.97 6.45 554.97 6.45 559.08 6.45 559.08 13.03 558.11 13.03 558.07 13.03 558.07 7.46 555.16 7.46 554.97 7.46 554.97 7.46 554.97 7.46 554.97 8.2 554.97 8.32 554.97 8.32 554.97 8.33 557.2 8.32 557.21 13.03 555.06 13.03 554.97 13.03 554.97 13.03 554.97 13.03 554.97 35.75 554.97 39.62 554.97 39.62 554.97 39.63 557.2 39.62 557.21 47.33 562.18 47.33 562.17 46.58 562.17 46.46 562.17 46.46 562.17 46.46 558.24 46.46 558.07 46.46 558.07 39.63 559.08 39.62 559.08 45.45 562.18 45.45 562.17 44.71 562.17 44.59 562.17 44.59 562.17 44.58 560.04 44.59 559.94 44.59 559.94 39.63"/>
|
||||
<polygon points="540.56 57.43 540.56 65.62 540.56 65.62 540.56 65.63 547.76 65.63 547.76 10.96 547.76 .03 547.76 .03 547.76 .03 541.01 .03 540.56 .03 540.56 .03 540.56 .03 540.56 57.43"/>
|
||||
<polygon points="583.8 72.46 583.79 72.46 583.79 72.46 576.89 72.46 576.59 72.46 576.59 72.46 576.59 72.46 576.59 73.18 576.59 73.32 576.59 73.32 576.59 73.33 583.8 73.33 583.8 72.55 583.8 72.46"/>
|
||||
<polygon points="567.15 52.63 569.38 52.62 569.38 29.35 569.38 26.03 569.38 26.03 569.38 26.03 567.24 26.03 567.15 26.03 567.15 18.58 562.38 18.59 562.18 18.59 562.18 18.59 562.18 18.59 562.18 19.32 562.18 19.45 562.18 19.45 562.18 19.45 566.28 19.45 566.29 26.03 565.32 26.03 565.28 26.03 565.27 20.46 562.31 20.46 562.18 20.46 562.18 20.46 562.18 20.46 562.18 21.2 562.18 21.32 562.18 21.32 562.18 21.33 564.41 21.32 564.41 26.03 562.27 26.03 562.18 26.03 562.18 26.03 562.18 26.03 562.18 48.75 562.18 52.62 562.18 52.62 562.18 52.63 564.41 52.62 564.41 60.33 569.38 60.33 569.38 59.57 569.38 59.46 569.38 59.46 569.38 59.46 565.45 59.46 565.28 59.46 565.27 52.63 566.28 52.62 566.29 58.45 569.38 58.45 569.38 57.69 569.38 57.59 569.38 57.59 569.38 57.58 567.24 57.59 567.15 57.59 567.15 52.63"/>
|
||||
<polygon points="554.97 .03 554.97 .03 554.97 .03 548.21 .03 547.77 .03 547.77 .03 547.76 .03 547.77 23.3 547.77 26.62 547.77 26.62 547.77 26.63 554.97 26.63 554.97 3.91 554.97 .03"/>
|
||||
<polygon points="554.97 33.58 554.97 33.46 554.97 33.46 554.97 33.46 552 33.46 551.87 33.46 551.87 33.46 551.87 33.46 551.87 72.46 547.93 72.46 547.77 72.46 547.77 72.46 547.76 72.46 547.77 73.22 547.77 73.32 547.77 73.32 547.77 73.33 552.74 73.33 552.73 34.33 554.97 34.32 554.97 33.58"/>
|
||||
<polygon points="554.97 31.59 554.97 31.59 554.97 31.58 550.2 31.59 550 31.59 550 31.59 550 31.59 550 70.58 547.86 70.59 547.77 70.59 547.77 70.59 547.76 70.59 547.77 71.34 547.77 71.45 547.77 71.45 547.77 71.45 550.86 71.45 550.86 32.45 554.97 32.45 554.97 31.71 554.97 31.59"/>
|
||||
<polygon points="576.59 72.46 576.59 72.46 576.59 72.46 572.65 72.46 572.48 72.46 572.48 65.63 573.49 65.62 573.49 71.45 576.59 71.45 576.59 70.69 576.59 70.59 576.59 70.59 576.59 70.58 574.45 70.59 574.36 70.59 574.36 65.63 576.59 65.62 576.59 42.35 576.59 39.03 576.59 39.03 576.59 39.03 574.45 39.03 574.36 39.03 574.36 31.58 569.59 31.59 569.39 31.59 569.39 31.59 569.38 31.59 569.39 32.31 569.39 32.45 569.39 32.45 569.39 32.45 573.49 32.45 573.49 39.03 572.53 39.03 572.48 39.03 572.48 33.46 569.51 33.46 569.39 33.46 569.39 33.46 569.38 33.46 569.39 34.18 569.39 34.32 569.39 34.32 569.39 34.33 571.62 34.32 571.62 39.03 569.48 39.03 569.39 39.03 569.39 39.03 569.38 39.03 569.39 61.2 569.39 65.62 569.39 65.62 569.39 65.63 571.62 65.62 571.62 73.33 576.59 73.33 576.59 72.57 576.59 72.46"/>
|
||||
<polygon points="591.01 65.63 598.21 65.63 598.21 5.49 598.21 .03 598.21 .03 598.21 .03 591.46 .03 591.01 .03 591.01 .03 591 .03 591.01 65.63"/>
|
||||
<polygon points="598.21 72.46 598.21 72.46 598.21 72.46 591.31 72.46 591.01 72.46 591.01 72.46 591 72.46 591.01 73.33 598.21 73.33 598.21 72.53 598.21 72.46"/>
|
||||
<polygon points="598.21 70.59 598.21 70.58 591.31 70.59 591.01 70.59 591.01 70.59 591 70.59 591.01 71.45 598.21 71.45 598.21 70.66 598.21 70.59 598.21 70.59"/>
|
||||
<polygon points="603.18 5.58 598.52 5.59 598.22 5.59 598.22 5.59 598.21 5.59 598.21 6.45 602.32 6.45 602.32 72.46 598.38 72.46 598.22 72.46 598.22 72.46 598.21 72.46 598.21 73.33 603.19 73.33 603.18 5.58"/>
|
||||
<polygon points="591 72.46 591 72.46 591 72.46 584.1 72.46 583.8 72.46 583.8 72.46 583.8 72.46 583.8 73.33 591 73.33 591 72.55 591 72.46"/>
|
||||
<polygon points="583.8 65.63 591 65.63 591 6.86 591 .03 591 .03 591 .03 584.25 .03 583.8 .03 583.8 .03 583.8 .03 583.8 65.63"/>
|
||||
<polygon points="504.52 20.46 497.61 20.46 497.32 20.46 497.32 20.46 497.31 20.46 497.32 21.29 497.32 21.32 497.32 21.32 497.32 21.33 504.52 21.33 504.52 20.46"/>
|
||||
<polygon points="591 70.59 591 70.58 584.1 70.59 583.8 70.59 583.8 70.59 583.8 70.59 583.8 71.45 591 71.45 591 70.67 591 70.59 591 70.59"/>
|
||||
<polygon points="576.59 52.03 576.59 52.03 576.59 52.03 576.59 63.36 576.59 65.62 576.59 65.62 576.59 65.63 583.8 65.63 583.8 53.44 583.8 52.03 583.79 52.03 583.79 52.03 581.66 52.03 581.57 52.03 581.56 44.58 576.8 44.59 576.59 44.59 576.59 44.59 576.59 44.59 576.59 45.31 576.59 45.45 576.59 45.45 576.59 45.45 580.7 45.45 580.7 52.03 579.73 52.03 579.69 52.03 579.69 46.46 576.72 46.46 576.59 46.46 576.59 46.46 576.59 46.46 576.59 47.18 576.59 47.32 576.59 47.32 576.59 47.33 578.82 47.32 578.83 52.03 576.68 52.03 576.59 52.03"/>
|
||||
<polygon points="540.56 71.45 540.56 71.45 547.76 71.45 547.76 70.73 547.76 70.59 547.76 70.59 547.76 70.58 540.86 70.59 540.56 70.59 540.56 70.59 540.56 70.59 540.56 71.34 540.56 71.45 540.56 71.45"/>
|
||||
<polygon points="504.82 26.03 504.52 26.03 504.52 26.03 504.52 26.03 504.52 38.78 504.52 39.62 504.52 39.62 504.52 39.63 511.73 39.63 511.72 26.03 504.82 26.03"/>
|
||||
<polygon points="504.82 18.59 504.52 18.59 504.52 18.59 504.52 18.59 504.52 19.4 504.52 19.45 504.52 19.45 504.52 19.45 511.73 19.45 511.72 18.58 504.82 18.59"/>
|
||||
<polygon points="504.82 44.59 504.52 44.59 504.52 44.59 504.52 44.59 504.52 45.4 504.52 45.45 504.52 45.45 504.52 45.45 511.73 45.45 511.72 44.58 504.82 44.59"/>
|
||||
<polygon points="497.32 13.06 497.32 13.62 497.32 13.62 497.32 13.63 504.52 13.63 504.52 .03 497.76 .03 497.32 .03 497.32 .03 497.31 .03 497.32 13.06"/>
|
||||
<polygon points="504.52 18.58 497.61 18.59 497.32 18.59 497.32 18.59 497.31 18.59 497.32 19.41 497.32 19.45 497.32 19.45 497.32 19.45 504.52 19.45 504.52 18.58"/>
|
||||
<polygon points="504.82 46.46 504.52 46.46 504.52 46.46 504.52 46.46 504.52 47.27 504.52 47.32 504.52 47.32 504.52 47.33 511.73 47.33 511.72 46.46 504.82 46.46"/>
|
||||
<polygon points="504.97 .03 504.52 .03 504.52 .03 504.52 .03 504.52 12.78 504.52 13.62 504.52 13.62 504.52 13.63 511.73 13.63 511.72 .03 504.97 .03"/>
|
||||
<polygon points="504.82 20.46 504.52 20.46 504.52 20.46 504.52 20.46 504.52 21.27 504.52 21.32 504.52 21.32 504.52 21.33 511.73 21.33 511.72 20.46 504.82 20.46"/>
|
||||
<polygon points="536.62 72.46 536.45 72.46 536.45 65.63 537.46 65.62 537.46 71.45 540.56 71.45 540.55 70.58 538.42 70.59 538.32 70.59 538.32 65.63 540.56 65.62 540.55 .03 533.8 .03 533.35 .03 533.35 .03 533.35 .03 533.35 58.79 533.35 65.62 533.35 65.62 533.35 65.63 535.58 65.62 535.58 73.33 540.56 73.33 540.55 72.46 536.62 72.46"/>
|
||||
<polygon points="547.76 72.46 547.76 72.46 547.76 72.46 540.86 72.46 540.56 72.46 540.56 72.46 540.56 72.46 540.56 73.22 540.56 73.32 540.56 73.32 540.56 73.33 547.76 73.33 547.76 72.6 547.76 72.46"/>
|
||||
<polygon points="526.35 18.59 526.14 18.59 526.14 18.59 526.14 18.59 526.14 19.36 526.14 19.45 526.14 19.45 526.14 19.45 530.25 19.45 530.25 72.46 526.31 72.46 526.14 72.46 526.14 72.46 526.14 72.46 526.14 73.24 526.14 73.32 526.14 73.32 526.14 73.33 531.12 73.33 531.11 18.58 526.35 18.59"/>
|
||||
<polygon points="518.94 71.45 518.94 71.45 526.14 71.45 526.14 70.58 519.23 70.59 518.94 70.59 518.94 70.59 518.93 70.59 518.94 71.38 518.94 71.45 518.94 71.45"/>
|
||||
<polygon points="519.23 72.46 518.94 72.46 518.94 72.46 518.93 72.46 518.94 73.25 518.94 73.32 518.94 73.32 518.94 73.33 526.14 73.33 526.14 72.46 519.23 72.46"/>
|
||||
<polygon points="518.94 13.03 518.94 13.03 518.93 13.03 518.94 61.24 518.94 65.62 518.94 65.62 518.94 65.63 526.14 65.63 526.14 13.03 524 13.03 523.91 13.03 523.91 5.58 519.25 5.59 518.94 5.59 518.94 5.59 518.93 5.59 518.94 6.38 518.94 6.45 518.94 6.45 518.94 6.45 523.04 6.45 523.04 13.03 522.08 13.03 522.03 13.03 522.03 7.46 519.13 7.46 518.94 7.46 518.94 7.46 518.93 7.46 518.94 8.25 518.94 8.32 518.94 8.32 518.94 8.33 521.17 8.32 521.17 13.03 519.03 13.03 518.94 13.03"/>
|
||||
<polygon points="515 72.46 514.83 72.46 514.82 65.77 514.82 65.63 515.83 65.62 515.84 71.45 518.93 71.45 518.93 70.58 516.8 70.59 516.7 70.59 516.7 65.73 516.7 65.63 518.93 65.62 518.93 .03 512.18 .03 511.73 .03 511.73 .03 511.73 .03 511.73 61.53 511.73 65.62 511.73 65.62 511.73 65.63 513.96 65.62 513.96 73.33 518.93 73.33 518.93 72.46 515 72.46"/>
|
||||
<polygon points="461.37 13.03 461.28 13.03 461.28 13.03 461.28 13.03 461.28 26.63 468.49 26.63 468.48 13.03 466.35 13.03 466.25 13.03 466.25 6.2 466.25 5.59 466.25 5.59 466.25 5.58 461.59 5.59 461.28 5.59 461.28 5.59 461.28 5.59 461.28 6.45 465.39 6.45 465.39 12.07 465.39 13.03 464.42 13.03 464.38 13.03 464.38 7.92 464.38 7.46 464.38 7.46 464.38 7.46 461.47 7.46 461.28 7.46 461.28 7.46 461.28 7.46 461.28 8.33 463.51 8.32 463.51 12.34 463.51 13.03 461.37 13.03"/>
|
||||
<polygon points="309.93 45.45 309.93 45.45 317.14 45.45 317.14 44.73 317.14 44.59 317.13 44.59 317.13 44.58 310.23 44.59 309.93 44.59 309.93 44.59 309.93 44.59 309.93 45.36 309.93 45.45 309.93 45.45"/>
|
||||
<polygon points="317.14 28.29 317.14 26.03 317.13 26.03 317.13 26.03 310.23 26.03 309.93 26.03 309.93 26.03 309.93 26.03 309.93 38.21 309.93 39.62 309.93 39.62 309.93 39.63 317.14 39.63 317.14 28.29"/>
|
||||
<polygon points="317.14 46.46 317.13 46.46 317.13 46.46 310.23 46.46 309.93 46.46 309.93 46.46 309.93 46.46 309.93 47.24 309.93 47.32 309.93 47.32 309.93 47.33 317.14 47.33 317.14 46.6 317.14 46.46"/>
|
||||
<polygon points="317.14 18.73 317.14 18.59 317.13 18.59 317.13 18.58 310.23 18.59 309.93 18.59 309.93 18.59 309.93 18.59 309.93 19.36 309.93 19.45 309.93 19.45 309.93 19.45 317.14 19.45 317.14 18.73"/>
|
||||
<polygon points="317.14 20.6 317.14 20.46 317.13 20.46 317.13 20.46 310.23 20.46 309.93 20.46 309.93 20.46 309.93 20.46 309.93 21.24 309.93 21.32 309.93 21.32 309.93 21.33 317.14 21.33 317.14 20.6"/>
|
||||
<polygon points="309.93 44.58 305.16 44.59 304.96 44.59 304.96 44.59 304.96 44.59 304.96 70.58 302.82 70.59 302.73 70.59 302.73 70.59 302.72 70.59 302.73 71.45 305.82 71.45 305.82 45.45 309.93 45.45 309.93 44.58"/>
|
||||
<polygon points="309.93 46.46 306.96 46.46 306.83 46.46 306.83 46.46 306.83 46.46 306.83 72.46 302.89 72.46 302.73 72.46 302.73 72.46 302.72 72.46 302.73 73.33 307.7 73.33 307.7 47.33 309.93 47.32 309.93 46.46"/>
|
||||
<polygon points="309.93 39.63 309.93 26.03 307.79 26.03 307.7 26.03 307.7 21.33 309.93 21.32 309.93 20.46 306.96 20.46 306.83 20.46 306.83 20.46 306.83 20.46 306.83 26.03 305.87 26.03 305.82 26.03 305.82 19.45 309.93 19.45 309.93 18.58 305.16 18.59 304.96 18.59 304.96 18.59 304.96 18.59 304.96 26.03 302.82 26.03 302.73 26.03 302.73 26.03 302.72 26.03 302.73 39.63 309.93 39.63"/>
|
||||
<polygon points="302.73 13.63 309.93 13.63 309.93 .03 303.17 .03 302.73 .03 302.73 .03 302.72 .03 302.73 13.63"/>
|
||||
<polygon points="324.34 18.59 324.34 18.59 324.34 18.58 317.44 18.59 317.14 18.59 317.14 18.59 317.14 18.59 317.14 19.34 317.14 19.45 317.14 19.45 317.14 19.45 324.34 19.45 324.34 18.73 324.34 18.59"/>
|
||||
<polygon points="324.34 .03 324.34 .03 324.34 .03 317.59 .03 317.14 .03 317.14 .03 317.14 .03 317.14 11.93 317.14 13.62 317.14 13.62 317.14 13.63 324.34 13.63 324.34 2.29 324.34 .03"/>
|
||||
<polygon points="324.34 20.46 324.34 20.46 324.34 20.46 317.44 20.46 317.14 20.46 317.14 20.46 317.14 20.46 317.14 21.22 317.14 21.32 317.14 21.32 317.14 21.33 324.34 21.33 324.34 20.6 324.34 20.46"/>
|
||||
<polygon points="331.55 72.46 331.55 72.46 331.55 72.46 327.62 72.46 327.44 72.46 327.44 65.63 328.45 65.62 328.46 71.45 331.55 71.45 331.55 70.71 331.55 70.59 331.55 70.59 331.55 70.58 329.41 70.59 329.32 70.59 329.32 65.63 331.55 65.62 331.55 9.59 331.55 .03 331.55 .03 331.55 .03 324.79 .03 324.35 .03 324.35 .03 324.34 .03 324.35 57.43 324.35 65.62 324.35 65.62 324.35 65.63 326.58 65.62 326.58 73.33 331.55 73.33 331.55 72.58 331.55 72.46"/>
|
||||
<polygon points="324.34 44.59 324.34 44.59 324.34 44.58 317.44 44.59 317.14 44.59 317.14 44.59 317.14 44.59 317.14 45.34 317.14 45.45 317.14 45.45 317.14 45.45 324.34 45.45 324.34 44.73 324.34 44.59"/>
|
||||
<polygon points="446.86 52.03 439.96 52.03 439.66 52.03 439.66 52.03 439.66 52.03 439.66 65.63 446.86 65.63 446.86 52.03"/>
|
||||
<polygon points="324.34 46.46 324.34 46.46 324.34 46.46 317.44 46.46 317.14 46.46 317.14 46.46 317.14 46.46 317.14 47.22 317.14 47.32 317.14 47.32 317.14 47.33 324.34 47.33 324.34 46.6 324.34 46.46"/>
|
||||
<polygon points="309.93 12.21 309.93 13.62 309.93 13.62 309.93 13.63 317.14 13.63 317.14 2.29 317.14 .03 317.13 .03 317.13 .03 310.38 .03 309.93 .03 309.93 .03 309.93 .03 309.93 12.21"/>
|
||||
<polygon points="281.1 72.46 281.1 72.46 281.1 72.46 274.2 72.46 273.9 72.46 273.9 72.46 273.9 72.46 273.9 73.27 273.9 73.32 273.9 73.32 273.9 73.33 281.1 73.33 281.1 72.49 281.1 72.46"/>
|
||||
<polygon points="281.1 70.59 281.1 70.59 281.1 70.58 274.2 70.59 273.9 70.59 273.9 70.59 273.9 70.59 273.9 71.4 273.9 71.45 273.9 71.45 273.9 71.45 281.1 71.45 281.1 70.62 281.1 70.59"/>
|
||||
<polygon points="338.76 72.46 338.76 72.46 338.76 72.46 331.85 72.46 331.55 72.46 331.55 72.46 331.55 72.46 331.55 73.2 331.55 73.32 331.55 73.32 331.55 73.33 338.76 73.33 338.76 72.58 338.76 72.46"/>
|
||||
<polygon points="281.1 52.03 281.1 52.03 281.1 52.03 278.96 52.03 278.87 52.03 278.87 44.74 278.87 44.59 278.87 44.59 278.87 44.58 274.1 44.59 273.9 44.59 273.9 44.59 273.9 44.59 273.9 45.4 273.9 45.45 273.9 45.45 273.9 45.45 278 45.45 278.01 51.89 278.01 52.03 277.04 52.03 277 52.03 276.99 46.57 276.99 46.46 276.99 46.46 276.99 46.46 274.02 46.46 273.9 46.46 273.9 46.46 273.9 46.46 273.9 47.27 273.9 47.32 273.9 47.32 273.9 47.33 276.13 47.32 276.13 51.93 276.13 52.03 273.99 52.03 273.9 52.03 273.9 52.03 273.9 52.03 273.9 64.78 273.9 65.62 273.9 65.62 273.9 65.63 281.1 65.63 281.1 52.59 281.1 52.03"/>
|
||||
<polygon points="281.1 20.46 281.1 20.46 281.1 20.46 278.13 20.46 278.01 20.46 278.01 20.46 278 20.46 278.01 33.19 278.01 33.46 274.07 33.46 273.9 33.46 273.9 33.46 273.9 33.46 273.9 34.27 273.9 34.32 273.9 34.32 273.9 34.33 278.87 34.33 278.87 21.6 278.87 21.33 281.1 21.32 281.1 20.49 281.1 20.46"/>
|
||||
<polygon points="273.89 .03 273.89 .03 273.89 .03 267.14 .03 266.69 .03 266.69 .03 266.69 .03 266.69 25.52 266.69 26.62 266.69 26.62 266.69 26.63 273.9 26.63 273.89 1.69 273.89 .03"/>
|
||||
<polygon points="252.57 26.03 252.28 26.03 252.28 26.03 252.27 26.03 252.28 39.34 252.28 39.62 252.28 39.62 252.28 39.63 259.48 39.63 259.48 26.03 252.57 26.03"/>
|
||||
<polygon points="295.52 60.16 295.52 65.62 295.52 65.62 295.52 65.63 302.72 65.63 302.72 1.39 302.72 .03 302.72 .03 302.72 .03 295.97 .03 295.52 .03 295.52 .03 295.52 .03 295.52 60.16"/>
|
||||
<polygon points="266.69 13.03 266.69 13.03 266.69 13.03 259.78 13.03 259.48 13.03 259.48 13.03 259.48 13.03 259.48 50.98 259.48 52.62 259.48 52.62 259.48 52.63 266.69 52.63 266.69 15.5 266.69 13.03"/>
|
||||
<polygon points="269.83 39.03 269.79 39.03 269.79 32.72 269.79 32.45 273.9 32.45 273.89 31.64 273.89 31.59 273.89 31.59 273.89 31.58 269.13 31.59 268.92 31.59 268.92 31.59 268.92 31.59 268.92 38.87 268.92 39.03 266.78 39.03 266.69 39.03 266.69 39.03 266.69 39.03 266.69 64.52 266.69 65.62 266.69 65.62 266.69 65.63 268.92 65.62 268.92 73.16 268.92 73.32 268.92 73.32 268.92 73.33 273.9 73.33 273.89 72.51 273.89 72.46 273.89 72.46 273.89 72.46 269.96 72.46 269.79 72.46 269.79 65.91 269.79 65.63 270.8 65.62 270.8 71.33 270.8 71.45 270.8 71.45 270.8 71.45 273.9 71.45 273.89 70.64 273.89 70.59 273.89 70.59 273.89 70.58 271.76 70.59 271.66 70.59 271.66 65.83 271.66 65.63 273.9 65.62 273.89 40.69 273.89 39.03 273.89 39.03 273.89 39.03 271.76 39.03 271.66 39.03 271.66 34.52 271.66 34.33 273.9 34.32 273.89 33.51 273.89 33.46 273.89 33.46 273.89 33.46 270.93 33.46 270.8 33.46 270.8 33.46 270.8 33.46 270.8 38.91 270.8 39.03 269.83 39.03"/>
|
||||
<polygon points="302.72 72.46 302.72 72.46 302.72 72.46 295.82 72.46 295.52 72.46 295.52 72.46 295.52 72.46 295.52 73.25 295.52 73.32 295.52 73.32 295.52 73.33 302.72 73.33 302.72 72.48 302.72 72.46"/>
|
||||
<polygon points="281.1 18.59 281.1 18.59 281.1 18.58 276.34 18.59 276.13 18.59 276.13 18.59 276.13 18.59 276.13 31.31 276.13 31.58 273.99 31.59 273.9 31.59 273.9 31.59 273.9 31.59 273.9 32.4 273.9 32.45 273.9 32.45 273.9 32.45 277 32.45 276.99 19.72 276.99 19.45 281.1 19.45 281.1 18.62 281.1 18.59"/>
|
||||
<polygon points="295.52 71.45 295.52 71.45 295.52 71.45 302.72 71.45 302.72 70.6 302.72 70.59 302.72 70.59 302.72 70.58 295.82 70.59 295.52 70.59 295.52 70.59 295.52 70.59 295.52 71.38 295.52 71.45"/>
|
||||
<polygon points="293.28 65.63 295.52 65.62 295.51 14.12 295.51 13.03 295.51 13.03 295.51 13.03 288.61 13.03 288.31 13.03 288.31 13.03 288.31 13.03 288.31 61.24 288.31 65.62 288.31 65.62 288.31 65.63 290.54 65.62 290.55 73 290.55 73.32 290.55 73.32 290.55 73.33 295.52 73.33 295.51 72.48 295.51 72.46 295.51 72.46 295.51 72.46 291.58 72.46 291.41 72.46 291.41 65.63 292.42 65.62 292.42 71.21 292.42 71.45 292.42 71.45 292.42 71.45 295.52 71.45 295.51 70.6 295.51 70.59 295.51 70.59 295.51 70.58 293.38 70.59 293.28 70.59 293.28 65.63"/>
|
||||
<polygon points="281.1 .03 281.1 .03 281.1 .03 274.35 .03 273.9 .03 273.9 .03 273.9 .03 273.9 12.78 273.9 13.62 273.9 13.62 273.9 13.63 281.1 13.63 281.1 .59 281.1 .03"/>
|
||||
<polygon points="286.07 5.59 286.07 5.59 286.07 5.58 281.41 5.59 281.11 5.59 281.11 5.59 281.1 5.59 281.11 6.4 281.11 6.45 281.11 6.45 281.11 6.45 285.21 6.45 285.21 19.87 285.21 20.46 281.27 20.46 281.11 20.46 281.11 20.46 281.1 20.46 281.11 21.27 281.11 21.32 281.11 21.32 281.11 21.33 286.08 21.33 286.07 5.91 286.07 5.59"/>
|
||||
<polygon points="286.07 57.59 286.07 57.59 286.07 57.58 281.31 57.59 281.11 57.59 281.11 57.59 281.1 57.59 281.11 58.4 281.11 58.45 281.11 58.45 281.11 58.45 285.21 58.45 285.21 71.87 285.21 72.46 281.27 72.46 281.11 72.46 281.11 72.46 281.1 72.46 281.11 73.27 281.11 73.32 281.11 73.32 281.11 73.33 286.08 73.33 286.07 57.91 286.07 57.59"/>
|
||||
<polygon points="324.34 26.03 324.34 26.03 324.34 26.03 317.44 26.03 317.14 26.03 317.14 26.03 317.14 26.03 317.14 37.93 317.14 39.62 317.14 39.62 317.14 39.63 324.34 39.63 324.34 28.29 324.34 26.03"/>
|
||||
<polygon points="415.8 13.62 415.8 13.03 415.8 5.59 415.8 5.59 415.8 5.58 411.14 5.59 410.83 5.59 410.83 5.59 410.83 5.59 410.83 6.45 414.94 6.45 414.94 68.33 414.94 72.46 411 72.46 410.83 72.46 410.83 72.46 410.83 72.46 410.83 73.33 415.8 73.33 415.8 16.87 415.8 13.62"/>
|
||||
<polygon points="403.62 65.63 410.83 65.63 410.83 2.76 410.83 .03 410.83 .03 410.83 .03 404.07 .03 403.63 .03 403.63 .03 403.62 .03 403.62 65.63"/>
|
||||
<polygon points="403.62 70.59 403.62 70.58 396.72 70.59 396.42 70.59 396.42 70.59 396.42 70.59 396.42 71.45 403.62 71.45 403.62 70.62 403.62 70.59 403.62 70.59"/>
|
||||
<polygon points="425.25 70.59 425.25 70.59 425.24 70.59 425.25 71.45 432.45 71.45 432.45 70.58 425.54 70.59 425.25 70.59"/>
|
||||
<polygon points="425.54 72.46 425.25 72.46 425.25 72.46 425.24 72.46 425.25 73.33 432.45 73.33 432.45 72.46 425.54 72.46"/>
|
||||
<polygon points="396.42 65.63 403.62 65.63 403.62 2.76 403.62 .03 403.62 .03 403.62 .03 396.87 .03 396.42 .03 396.42 .03 396.42 .03 396.42 65.63"/>
|
||||
<polygon points="410.83 70.59 410.83 70.58 403.92 70.59 403.63 70.59 403.63 70.59 403.62 70.59 403.62 71.45 410.83 71.45 410.83 70.62 410.83 70.59 410.83 70.59"/>
|
||||
<polygon points="410.83 72.46 410.83 72.46 410.83 72.46 403.92 72.46 403.63 72.46 403.63 72.46 403.62 72.46 403.62 73.33 410.83 73.33 410.83 72.49 410.83 72.46"/>
|
||||
<polygon points="425.24 72.46 425.24 72.46 425.24 72.46 421.31 72.46 421.14 72.46 421.13 66.62 421.13 65.63 422.14 65.62 422.15 70.96 422.15 71.45 422.15 71.45 422.15 71.45 425.24 71.45 425.24 70.6 425.24 70.59 425.24 70.59 425.24 70.58 423.1 70.59 423.01 70.59 423.01 66.35 423.01 65.63 425.24 65.62 425.24 1.39 425.24 .03 425.24 .03 425.24 .03 418.49 .03 418.04 .03 418.04 .03 418.04 .03 418.04 65.63 420.27 65.62 420.27 72.68 420.27 73.32 420.27 73.32 420.27 73.33 425.24 73.33 425.24 72.48 425.24 72.46"/>
|
||||
<polygon points="439.66 39.63 439.65 26.03 437.52 26.03 437.42 26.03 437.42 21.91 437.42 21.33 439.66 21.32 439.65 20.46 436.69 20.46 436.56 20.46 436.56 20.46 436.56 20.46 436.56 25.45 436.56 26.03 435.59 26.03 435.55 26.03 435.55 20.27 435.55 19.45 439.66 19.45 439.65 18.58 434.89 18.59 434.69 18.59 434.69 18.59 434.68 18.59 434.69 25.25 434.69 26.03 432.54 26.03 432.45 26.03 432.45 26.03 432.45 26.03 432.45 39.63 439.66 39.63"/>
|
||||
<polygon points="432.45 13.63 439.66 13.63 439.65 .03 432.9 .03 432.45 .03 432.45 .03 432.45 .03 432.45 13.63"/>
|
||||
<polygon points="439.96 72.46 439.66 72.46 439.66 72.46 439.66 72.46 439.66 73.33 446.86 73.33 446.86 72.46 439.96 72.46"/>
|
||||
<polygon points="439.66 70.59 439.66 70.59 439.66 70.59 439.66 71.45 446.86 71.45 446.86 70.58 439.96 70.59 439.66 70.59"/>
|
||||
<polygon points="432.75 72.46 432.45 72.46 432.45 72.46 432.45 72.46 432.45 73.33 439.66 73.33 439.65 72.46 432.75 72.46"/>
|
||||
<polygon points="425.25 65.63 432.45 65.63 432.45 .03 425.69 .03 425.25 .03 425.25 .03 425.24 .03 425.25 65.63"/>
|
||||
<polygon points="331.55 71.45 331.55 71.45 338.76 71.45 338.76 70.71 338.76 70.59 338.76 70.59 338.76 70.58 331.85 70.59 331.55 70.59 331.55 70.59 331.55 70.59 331.55 71.32 331.55 71.45 331.55 71.45"/>
|
||||
<polygon points="439.66 65.63 439.65 52.03 437.52 52.03 437.42 52.03 437.42 47.91 437.42 47.33 439.66 47.32 439.65 46.46 436.69 46.46 436.56 46.46 436.56 46.46 436.56 46.46 436.56 51.45 436.56 52.03 435.59 52.03 435.55 52.03 435.55 46.27 435.55 45.45 439.66 45.45 439.65 44.58 434.89 44.59 434.69 44.59 434.69 44.59 434.68 44.59 434.69 51.25 434.69 52.03 432.54 52.03 432.45 52.03 432.45 52.03 432.45 52.03 432.45 65.63 439.66 65.63"/>
|
||||
<polygon points="432.45 70.59 432.45 70.59 432.45 70.59 432.45 71.45 439.66 71.45 439.65 70.58 432.75 70.59 432.45 70.59"/>
|
||||
<polygon points="353.18 65.63 360.38 65.63 360.38 6.86 360.38 .03 360.38 .03 360.38 .03 353.62 .03 353.18 .03 353.18 .03 353.17 .03 353.18 65.63"/>
|
||||
<polygon points="367.58 31.59 367.58 31.59 367.58 31.58 362.82 31.59 362.62 31.59 362.62 31.59 362.61 31.59 362.62 70.58 360.47 70.59 360.38 70.59 360.38 70.59 360.38 70.59 360.38 71.45 363.48 71.45 363.48 32.45 367.59 32.45 367.58 31.67 367.58 31.59"/>
|
||||
<polygon points="367.58 33.55 367.58 33.46 367.58 33.46 367.58 33.46 364.62 33.46 364.49 33.46 364.49 33.46 364.49 33.46 364.49 72.46 360.55 72.46 360.38 72.46 360.38 72.46 360.38 72.46 360.38 73.33 365.35 73.33 365.35 34.33 367.59 34.32 367.58 33.55"/>
|
||||
<polygon points="360.38 72.46 360.38 72.46 360.38 72.46 353.47 72.46 353.18 72.46 353.18 72.46 353.17 72.46 353.18 73.33 360.38 73.33 360.38 72.55 360.38 72.46"/>
|
||||
<polygon points="360.38 70.59 360.38 70.58 353.47 70.59 353.18 70.59 353.18 70.59 353.17 70.59 353.18 71.45 360.38 71.45 360.38 70.67 360.38 70.59 360.38 70.59"/>
|
||||
<polygon points="353.17 72.46 353.17 72.46 353.17 72.46 349.24 72.46 349.07 72.46 349.06 65.63 350.07 65.62 350.08 71.45 353.17 71.45 353.17 70.69 353.17 70.59 353.17 70.59 353.17 70.58 351.03 70.59 350.94 70.59 350.94 65.63 353.17 65.62 353.17 8.23 353.17 .03 353.17 .03 353.17 .03 346.42 .03 345.97 .03 345.97 .03 345.97 .03 345.97 65.63 348.2 65.62 348.2 73.33 353.17 73.33 353.17 72.57 353.17 72.46"/>
|
||||
<polygon points="331.55 13.03 331.55 13.03 331.55 13.03 331.55 57.96 331.55 65.62 331.55 65.62 331.55 65.63 338.76 65.63 338.76 20.7 338.76 13.03 338.76 13.03 338.76 13.03 336.62 13.03 336.53 13.03 336.52 5.58 331.86 5.59 331.55 5.59 331.55 5.59 331.55 5.59 331.55 6.32 331.55 6.45 331.55 6.45 331.55 6.45 335.66 6.45 335.66 13.03 334.69 13.03 334.65 13.03 334.65 7.46 331.75 7.46 331.55 7.46 331.55 7.46 331.55 7.46 331.55 8.2 331.55 8.32 331.55 8.32 331.55 8.33 333.78 8.32 333.79 13.03 331.64 13.03 331.55 13.03"/>
|
||||
<polygon points="338.97 18.59 338.76 18.59 338.76 18.59 338.76 18.59 338.76 19.32 338.76 19.45 338.76 19.45 338.76 19.45 342.87 19.45 342.87 72.46 338.93 72.46 338.76 72.46 338.76 72.46 338.76 72.46 338.76 73.2 338.76 73.32 338.76 73.32 338.76 73.33 343.73 73.33 343.73 18.58 338.97 18.59"/>
|
||||
<polygon points="389.21 72.46 389.21 72.46 389.21 72.46 385.27 72.46 385.1 72.46 385.1 65.63 386.11 65.62 386.11 71.33 386.11 71.45 386.11 71.45 386.11 71.45 389.21 71.45 389.21 70.64 389.21 70.59 389.21 70.59 389.21 70.58 387.07 70.59 386.98 70.59 386.97 65.63 389.21 65.62 389.21 40.69 389.21 39.03 389.21 39.03 389.21 39.03 387.07 39.03 386.98 39.03 386.97 31.58 382.21 31.59 382 31.59 382 31.59 382 31.59 382 32.45 386.11 32.45 386.11 38.89 386.11 39.03 385.14 39.03 385.1 39.03 385.1 33.46 382.13 33.46 382 33.46 382 33.46 382 33.46 382 34.33 384.23 34.32 384.24 38.93 384.24 39.03 382.09 39.03 382 39.03 382 39.03 382 39.03 382 65.63 384.23 65.62 384.24 73.16 384.24 73.32 384.24 73.32 384.24 73.33 389.21 73.33 389.21 72.51 389.21 72.46"/>
|
||||
<polygon points="396.41 72.46 396.41 72.46 396.41 72.46 389.51 72.46 389.21 72.46 389.21 72.46 389.21 72.46 389.21 73.33 396.42 73.33 396.41 72.51 396.41 72.46"/>
|
||||
<polygon points="396.41 70.59 396.41 70.58 389.51 70.59 389.21 70.59 389.21 70.59 389.21 70.59 389.21 71.45 396.42 71.45 396.41 70.64 396.41 70.59 396.41 70.59"/>
|
||||
<polygon points="389.3 52.03 389.21 52.03 389.21 52.03 389.21 52.03 389.21 65.63 396.42 65.63 396.41 52.88 396.41 52.03 396.41 52.03 396.41 52.03 394.28 52.03 394.18 52.03 394.18 44.58 389.42 44.59 389.21 44.59 389.21 44.59 389.21 44.59 389.21 45.45 393.32 45.45 393.32 51.75 393.32 52.03 392.35 52.03 392.31 52.03 392.3 46.46 389.34 46.46 389.21 46.46 389.21 46.46 389.21 46.46 389.21 47.33 391.44 47.32 391.44 51.83 391.44 52.03 389.3 52.03"/>
|
||||
<polygon points="379.77 52.63 382 52.62 382 28.24 382 26.03 382 26.03 382 26.03 379.86 26.03 379.77 26.03 379.77 18.58 375 18.59 374.8 18.59 374.8 18.59 374.79 18.59 374.8 19.45 378.9 19.45 378.9 25.89 378.9 26.03 377.94 26.03 377.89 26.03 377.89 20.46 374.92 20.46 374.8 20.46 374.8 20.46 374.79 20.46 374.8 21.33 377.03 21.32 377.03 25.93 377.03 26.03 374.89 26.03 374.8 26.03 374.8 26.03 374.79 26.03 374.8 52.63 377.03 52.62 377.03 60.16 377.03 60.32 377.03 60.32 377.03 60.33 382 60.33 382 59.53 382 59.46 382 59.46 382 59.46 378.06 59.46 377.89 59.46 377.89 52.63 378.9 52.62 378.9 58.33 378.9 58.45 378.9 58.45 378.9 58.45 382 58.45 382 57.66 382 57.59 382 57.59 382 57.58 379.86 57.59 379.77 57.59 379.77 52.63"/>
|
||||
<polygon points="372.56 39.63 374.79 39.62 374.79 15.24 374.79 13.03 374.79 13.03 374.79 13.03 372.65 13.03 372.56 13.03 372.56 5.58 367.9 5.59 367.59 5.59 367.59 5.59 367.59 5.59 367.59 6.45 371.69 6.45 371.7 13.03 370.73 13.03 370.69 13.03 370.68 7.46 367.78 7.46 367.59 7.46 367.59 7.46 367.59 7.46 367.59 8.33 369.82 8.32 369.82 13.03 367.68 13.03 367.59 13.03 367.59 13.03 367.59 13.03 367.59 39.63 369.82 39.62 369.82 47.33 374.79 47.33 374.79 46.53 374.79 46.46 374.79 46.46 374.79 46.46 370.86 46.46 370.69 46.46 370.68 39.63 371.69 39.62 371.7 45.45 374.79 45.45 374.79 44.66 374.79 44.59 374.79 44.59 374.79 44.58 372.65 44.59 372.56 44.59 372.56 39.63"/>
|
||||
<polygon points="367.58 .03 367.58 .03 367.58 .03 360.83 .03 360.38 .03 360.38 .03 360.38 .03 360.38 26.63 367.59 26.63 367.58 2.8 367.58 .03"/>
|
||||
<g>
|
||||
<path d="M136.97,34.35h5v-15.11s-.03-.68-.03-.68h-4.76s-.18.02-.18.02v-4.42s-.03-1.16-.03-1.16l-2.2.03v-6.98s-.03-.49-.03-.49h-4.66s-.31.03-.31.03V0s-6.76,0-6.76,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03h-6.75s-.45.03-.45.03v-.03h-6.75s-.48.03-.48.03l.03,65.62,2.2-.03.03,7.73h46.01v-12.22s-.03-.78-.03-.78l2.24-.03v.03h5v-15.11s-.03-.68-.03-.68h-4.76s-.18.02-.18.02v-4.42s-.03-1.16-.03-1.16l-2.2.03v-4.41s-.03-.27-.03-.27l2.24-.03v.03ZM136.99,26.66v-5.3s2.18-.03,2.18-.03l.03,10.23h-2.14s-.09.02-.09.02v-.02s-4.77,0-4.77,0l-.24.03.03,7.41h-2.14s-.08.02-.08.02v-12.36s7.22,0,7.22,0ZM129.76,13.02v-4.72s0,.05,0,.05l2.2-.03.03,4.68h-2.14s-.09.02-.09.02ZM129.76,6.48l4.08-.03.03,6.55-.98.03v-5.23s-.03-.38-.03-.38h-2.9s-.19.03-.19.03v-1.06s0,.08,0,.08ZM122.54,52h-6.9s-.3.03-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.68,2.24-.03v.03h14.41v4.65ZM122.54,46.43h-6.9s-.3.03-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.97,0-2.97,0l-.16.03.03,5.54-.98.03-.03-6.55,4.11-.03v.03h14.41v.95ZM122.54,44.55h-6.9s-.3.03-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-4.77,0-4.77,0l-.24.03.03,7.41-2.21.03v-12.38s7.18,0,7.18,0h14.4v4.9ZM122.53,26h-6.89s-.3.03-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.68,2.24-.03v.03h14.4v4.65ZM122.53,20.43h-6.89s-.3.03-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.97,0-2.97,0l-.16.03.03,5.54-.98.03-.03-6.55,4.11-.03v.03h14.39v.95ZM108.14,13.66h14.39v4.9s-6.89,0-6.89,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-4.77,0-4.77,0l-.24.03.03,7.41h-2.14s-.08.02-.08.02v-12.37s7.2,0,7.2,0ZM141.04,45.45l.03,13.98h-3.94s-.17.03-.17.03v-.03s-2.98,0-2.98,0l-.16.03.03,12.97h-3.94s-.17.03-.17.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03-.03-6.8.98-.03.03,5.85,3.1-.03v.03h39.16v-12.22s-.03-.78-.03-.78l4.11-.03v.03h3.13v-11.52s-.03-.53-.03-.53h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03ZM136.99,52.66v-5.3s2.18-.03,2.18-.03l.03,10.23h-2.14s-.09.02-.09.02v-.02s-4.77,0-4.77,0l-.24.03.03,12.97h-2.14s-.1.03-.1.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.93,2.24-.03v.03l7.21-.03v.03h28.85v-13s7.21,0,7.21,0ZM133.99,33.43l-.16.03.03,5.54-.98.03v-6.17s-.03-.38-.03-.38l4.11-.03v.03h3.13v-11.52s-.03-.53-.03-.53h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03l.03,13.98h-3.94s-.17.03-.17.03v-.03s-2.98,0-2.98,0Z"/>
|
||||
<path d="M223.65,31.56l-.2.02v-5.58s-6.92,0-6.92,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.33.03.03,13.62,2.2-.03v7.06s.03.67.03.67h38.8l-.03-15.8h-4.77ZM194.62,39.63v.03h28.85v-5.3s2.18-.03,2.18-.03l.03,10.23h-2.14s-.1.03-.1.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.93,2.24-.03ZM223.62,46.43l-.17.02v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03-.03-6.8.98-.03v5.34s.03.51.03.51l3.1-.03v.03h31.95l-.03-12.05h-2.97s-.11.02-.11.02v-.97s4.06-.03,4.06-.03l.03,13.98h-3.94Z"/>
|
||||
<path d="M194.83,57.56l-.2.02v-5.58s-6.92,0-6.92,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.68,2.24-.03v.03h19.42l-.03-15.8h-4.77s-.18.02-.18.02v-5.27s-.03-.31-.03-.31h-6.9s-.3.03-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.68,2.24-.03v.03h33.83l-.03-15.8h-4.66s-.3.03-.3.03V0s-6.77,0-6.77,0l-.45.03v-.03s-6.76,0-6.76,0l-.45.03v-.03s-6.76,0-6.76,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.48.03v62.86s.03,2.76.03,2.76l2.2-.03v7.54s.03.19.03.19h53.22l-.03-15.8h-4.77ZM184.28,32.45v13.13s.03.85.03.85h-3.94s-.17.03-.17.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.97,0-2.97,0l-.16.03v5.33s.03.2.03.2l-.98.03v-6.44s-.03-.11-.03-.11l4.11-.03v.03h17.54l-.03-12.05h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03ZM165.79,39.66h14.44v-5.3s2.18-.03,2.18-.03v9.62s.03.61.03.61h-2.14s-.1.03-.1.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-4.77,0-4.77,0l-.24.03v7.13s.03.28.03.28h-2.14s-.07.02-.07.02v-12.36s7.18,0,7.18,0ZM198.7,6.45v12.84s.03,1.14.03,1.14h-3.94s-.17.03-.17.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.97,0-2.97,0l-.16.03v5.34s.03.2.03.2l-.98.03v-6.44s-.03-.11-.03-.11l4.11-.03v.03h31.95l-.03-12.05h-2.9s-.18.03-.18.03v-.98s4.06-.03,4.06-.03ZM165.79,13.66h28.85v-5.3s2.18-.03,2.18-.03v9.41s.03.83.03.83h-2.14s-.1.03-.1.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-4.77,0-4.77,0l-.24.03v7.13s.03.28.03.28h-2.14s-.07.02-.07.02v-12.36s7.18,0,7.18,0ZM151.38,65.63v.03h43.27v-5.3s2.18-.03,2.18-.03v9.41s.03.83.03.83h-2.14s-.1.03-.1.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03v-4.75s-.03-.18-.03-.18l2.24-.03ZM194.79,72.43l-.17.02v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-3.94,0-3.94,0l-.14.03v-6.55s-.03-.26-.03-.26l.98-.03v5.7s.03.15.03.15l3.1-.03v.03h46.37l-.03-12.05h-2.97s-.11.02-.11.02v-.97s4.07-.03,4.07-.03v12.84s.03,1.14.03,1.14h-3.94Z"/>
|
||||
<path d="M79.62,5.56l-.31.03V0s-6.76,0-6.76,0l-.45.03v-.03s-6.75,0-6.75,0l-.48.03.03,65.62,2.2-.03.03,7.73h17.18l-.03-67.8h-4.66ZM72.1,65.63v.03h7.23l-.03-57.36v.05s2.2-.03,2.2-.03l.03,62.23h-2.14s-.1.03-.1.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.93,2.24-.03ZM79.48,72.43l-.17.02v-.03s-6.9,0-6.9,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03-.03-6.8.98-.03.03,5.85,3.1-.03v.03h10.33l-.03-64.05h-2.9s-.19.03-.19.03v-1.06s0,.08,0,.08l4.08-.03.03,65.98h-3.94Z"/>
|
||||
<path d="M58,5.56l-.31.03V0s-6.76,0-6.76,0l-.45.03v-.03s-6.75,0-6.75,0l-.48.03.02,38.97h-6.9s-.33.03-.33.03l.02,12.97h-6.89s-.3.03-.3.03v-.03s-2.2.03-2.2.03l-.03-7.48h-4.76s-.2.03-.2.03v-5.58s-2.21.03-2.21.03l-.03-33.48h-4.66s-.31.03-.31.03V0s-6.76,0-6.76,0l-.45.03v-.03H.48s-.48.03-.48.03l.03,39.62,2.2-.03.03,7.73h4.97v5.3s2.2-.03,2.2-.03l.03,7.73h4.97v5.3s2.21-.03,2.21-.03l.03,7.73h31.6l-.03-13,2.24-.03v.03h5v-12.76s-.03-.24-.03-.24l2.24-.03v.03h5l-.03-41.8h-4.66ZM7.23,39.63v4.96s0-.03,0-.03l-2.2.03-.03-4.93,2.23-.03ZM7.23,46.43h-3.93s-.14.03-.14.03l-.03-6.8.98-.03.03,5.85,3.1-.03v1.05s0-.07,0-.07ZM25.73,45.45l.03,6.55-.98.03-.03-5.6h-2.97s-.12.03-.12.03v-.98s4.07-.03,4.07-.03ZM21.66,52.02v-4.67s2.19-.03,2.19-.03l.03,4.68h-2.14s-.08.02-.08.02ZM21.65,65.63v.03h21.65l-.02-13h7.22v-13s7.21,0,7.21,0l-.02-31.3,2.2-.03.03,36.23h-2.14s-.1.03-.1.03v-.03s-4.77,0-4.77,0l-.24.03v12.73s.03.24.03.24h-2.14s-.1.03-.1.03v-.03s-4.77,0-4.77,0l-.24.03.03,12.97h-2.14s-.1.03-.1.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.93,2.24-.03ZM14.45,6.48l4.08-.03.03,32.55-.98.03-.03-31.6h-2.9s-.19.03-.19.03v-1.04s0,.06,0,.06ZM14.43,52.63v4.93s-2.19.03-2.19.03l-.03-4.93,2.22-.03ZM10.51,59.43l-.14.03-.03-6.8.98-.03.03,5.85,3.09-.03v.98s-3.93,0-3.93,0ZM14.54,39l-.07.02-.02-30.69v.03s2.2-.03,2.2-.03l.03,30.68h-2.14ZM57.86,46.43l-.17.02v-.03s-2.97,0-2.97,0l-.16.03v12.73s.03.24.03.24h-3.94s-.17.03-.17.03v-.03s-2.97,0-2.97,0l-.16.03.03,12.97h-3.94s-.17.03-.17.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03-.03-6.8.98-.03.03,5.85,3.1-.03v.03h24.75l-.03-13,4.11-.03v.03h3.13v-12.76s-.03-.24-.03-.24l4.11-.03v.03h3.13l-.03-38.05h-2.9s-.19.03-.19.03v-1s0,.02,0,.02l4.08-.03.03,39.98h-3.94Z"/>
|
||||
<path d="M468.49,34.35h5v-14.46s-.03-1.34-.03-1.34h-4.76s-.2.03-.2.03v-5.58s-2.21.03-2.21.03v-6.83s-.03-.65-.03-.65h-4.66s-.31.03-.31.03V0s-6.76,0-6.76,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03h-6.75s-.45.03-.45.03v-.03s-6.75,0-6.75,0l-.48.03.03,65.62,2.2-.03v7.06s.03.67.03.67h46.01v-11.95s-.03-1.05-.03-1.05l2.24-.03v.03h5v-14.46s-.03-1.34-.03-1.34h-4.76s-.2.03-.2.03v-5.58s-2.21.03-2.21.03v-4.31s-.03-.36-.03-.36l2.24-.03v.03ZM468.51,26.66v-5.3s2.18-.03,2.18-.03v8.76s.03,1.47.03,1.47h-2.14s-.09.03-.09.03v-.03s-4.77,0-4.77,0l-.24.03v6.36s.03,1.06.03,1.06h-2.14s-.08.02-.08.02v-12.36s7.22,0,7.22,0ZM461.28,13.02v-4.72s0,.05,0,.05l2.2-.03v4.02s.03.66.03.66h-2.14s-.09.02-.09.02ZM461.28,6.48l4.08-.03v5.62s.03.93.03.93l-.98.03v-5.11s-.03-.49-.03-.49h-2.9s-.19.03-.19.03v-1.06s0,.08,0,.08ZM454.07,52h-6.9s-.3.03-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03v-4.12s-.03-.56-.03-.56l2.24-.03v.03h14.41v4.65ZM454.07,46.43h-6.9s-.3.03-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.97,0-2.97,0l-.16.03v4.99s.03.55.03.55l-.98.03v-5.76s-.03-.79-.03-.79l4.11-.03v.03h14.41v.95ZM454.06,44.55h-6.9s-.3.03-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-4.77,0-4.77,0l-.24.03v6.67s.03.75.03.75h-2.14s-.07.02-.07.02v-12.36s7.19,0,7.19,0h14.4v4.9ZM454.06,26h-6.89s-.3.03-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03v-4.12s-.03-.56-.03-.56l2.24-.03v.03h14.39v4.65ZM454.05,20.43h-6.89s-.3.03-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.97,0-2.97,0l-.16.03v4.99s.03.55.03.55l-.98.03v-5.76s-.03-.79-.03-.79l4.11-.03v.03h14.39v.95ZM439.66,13.66h14.39v4.9s-6.89,0-6.89,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-4.77,0-4.77,0l-.24.03v6.67s.03.75.03.75h-2.14s-.08.02-.08.02v-12.37s7.2,0,7.2,0ZM472.56,45.45v11.97s.03,2.01.03,2.01h-3.94s-.17.03-.17.03v-.03s-2.97,0-2.97,0l-.16.03v11.1s.03,1.87.03,1.87h-3.94s-.17.03-.17.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03v-5.84s-.03-.97-.03-.97l.98-.03v5.34s.03.51.03.51l3.1-.03v.03h39.16v-11.95s-.03-1.05-.03-1.05l4.11-.03v.03h3.13v-11.02s-.03-1.03-.03-1.03h-2.97s-.11.02-.11.02v-.97s4.07-.03,4.07-.03ZM468.51,52.66v-5.3s2.18-.03,2.18-.03v8.76s.03,1.47.03,1.47h-2.14s-.09.03-.09.03v-.03s-4.77,0-4.77,0l-.24.03v11.1s.03,1.87.03,1.87h-2.14s-.09.03-.09.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.2.03-2.2.03v-4.24s-.03-.69-.03-.69l2.24-.03v.03h36.06v-13s7.21,0,7.21,0ZM465.51,33.43l-.16.03v4.76s.03.78.03.78l-.98.03v-6.03s-.03-.52-.03-.52l4.11-.03v.03h3.13v-11.02s-.03-1.03-.03-1.03h-2.97s-.11.02-.11.02v-.97s4.07-.03,4.07-.03v11.97s.03,2.01.03,2.01h-3.94s-.17.03-.17.03v-.03s-2.97,0-2.97,0Z"/>
|
||||
<path d="M603.18,5.55h-4.66s-.29.03-.29.03v-.09l-.03-5.5h-6.75s-.45.03-.45.03v-.03s-6.75,0-6.75,0l-.48.03.02,51.97-2.2.03-.03-7.48h-4.76s-.18.02-.18.02v-2.23s-.03-3.35-.03-3.35l-2.2.03-.03-7.48h-4.76s-.18.02-.18.02v-2.23s-.03-3.35-.03-3.35l-2.2.03-.03-7.48h-4.76s-.18.02-.18.02v-1.67s-.03-3.91-.03-3.91l-2.2.03-.03-7.48h-4.66s-.28.03-.28.03v-1.67s-.03-3.91-.03-3.91h-6.75s-.45.03-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03h-6.75s-.48.03-.48.03v58.76s.03,6.86.03,6.86l2.2-.03.03,7.73h17.18l-.03-39,2.21-.03v1.43s.03,3.91.03,3.91l2.2-.03.03,7.73h4.95v1.4s.03,3.91.03,3.91l2.2-.03.03,7.73h4.95v.84s.03,4.46.03,4.46l2.2-.03.03,7.73h31.6l-.03-67.8ZM580.67,45.45l.03,6.55-.98.03-.03-5.6h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03ZM576.62,52.02v-4.67s2.18-.03,2.18-.03l.03,4.68h-2.14s-.07.02-.07.02ZM576.59,65.63v.03h21.65V8.35s2.18-.03,2.18-.03l.03,62.23h-2.14s-.09.02-.09.02v-.02s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.21.03-2.21.03l-.03-4.93,2.24-.03ZM573.46,32.45l.03,6.55-.98.03-.03-5.6h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03ZM569.36,52.63v4.93s-2.18.03-2.18.03l-.03-4.93,2.21-.03ZM566.26,19.45l.03,6.55-.98.03-.03-5.6h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03ZM562.15,39.63v4.93s-2.18.03-2.18.03l-.03-4.93,2.21-.03ZM559.05,6.45l.03,6.55-.98.03-.03-5.6h-2.9s-.17.02-.17.02v-.98s4.05-.03,4.05-.03ZM540.56,65.63v.03h7.23V26.66s7.15,0,7.15,0v4.9s-4.74,0-4.74,0l-.24.03.03,38.97h-2.14s-.09.02-.09.02v-.02s-6.91,0-6.91,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.93,2.24-.03ZM552,33.43l-.16.03.03,38.97h-3.94s-.17.03-.17.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03-.03-6.8.98-.03.03,5.85,3.09-.03v.03h10.34l-.03-39,4.08-.03v.98s-2.94,0-2.94,0ZM555.06,13l-.07.02v-4.67s2.18-.03,2.18-.03l.03,4.68h-2.14ZM558.24,46.43l-.14.03-.03-6.8.98-.03.03,5.85,3.07-.03v.98s-3.91,0-3.91,0ZM562.27,26l-.07.02v-4.67s2.18-.03,2.18-.03l.03,4.68h-2.14ZM565.45,59.43l-.14.03-.03-6.8.98-.03.03,5.85,3.07-.03v.98s-3.91,0-3.91,0ZM569.48,39l-.07.02v-4.67s2.18-.03,2.18-.03l.03,4.68h-2.14ZM598.38,72.43l-.17.02v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-3.94,0-3.94,0l-.14.03-.03-6.8.98-.03.03,5.85,3.09-.03v.03h24.75l-.03-64.05h-2.9s-.17.02-.17.02v-.98s4.05-.03,4.05-.03l.03,65.98h-3.94Z"/>
|
||||
<path d="M526.35,18.56l-.21.02v-5.58s-2.2.03-2.2.03l-.03-7.48h-4.66s-.31.03-.31.03V0s-6.76,0-6.76,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03h-6.75s-.48.03-.48.03v12.97s-6.88,0-6.88,0l-.33.03v51.5s.03,1.12.03,1.12l2.2-.03v6.42s.03,1.31.03,1.31h17.18v-24.95s-.03-1.05-.03-1.05l2.24-.03v.03h14.39v14.17s.03,4.13.03,4.13l2.2-.03.03,7.73h17.18l-.03-54.8h-4.76ZM497.32,13.66h14.38v4.9s-6.88,0-6.88,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-4.77,0-4.77,0l-.24.03.03,7.41h-2.14s-.08.02-.08.02v-12.37s7.2,0,7.2,0ZM511.7,26h-6.88s-.3.03-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03v-4.51s-.03-.17-.03-.17l2.24-.03v.03h14.38v4.65ZM511.7,20.43h-6.88s-.3.03-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.97,0-2.97,0l-.16.03.03,5.54-.98.03v-6.31s-.03-.25-.03-.25l4.11-.03v.03h14.38v.95ZM482.9,65.63v.03h7.23v-26s7.18,0,7.18,0h14.38v4.9s-6.88,0-6.88,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-4.77,0-4.77,0l-.24.03.03,25.97h-2.14s-.09.03-.09.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.2.03-2.2.03v-4.65s-.03-.28-.03-.28l2.24-.03ZM504.82,46.43l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.97,0-2.97,0l-.16.03.03,25.97h-3.94s-.17.03-.17.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03v-6.41s-.03-.4-.03-.4l.98-.03v4.85s.03,1,.03,1l3.1-.03v.03h10.33v-24.95s-.03-1.05-.03-1.05l4.11-.03v.03h14.39v.95s-6.88,0-6.88,0ZM518.94,6.48l4.08-.03.03,6.55-.98.03-.03-5.6h-2.9s-.19.03-.19.03v-.99s0,0,0,0ZM518.94,13.02v-4.68s0,0,0,0l2.2-.03.03,4.68h-2.14s-.09.02-.09.02ZM518.94,65.63v.03h7.23l-.03-44.31h0s2.2-.03,2.2-.03l.03,49.23h-2.14s-.09.03-.09.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.2.03-2.2.03v-4.85s-.03-.08-.03-.08l2.24-.03ZM526.31,72.43l-.17.02v-.03s-6.91,0-6.91,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03v-6.69s-.03-.11-.03-.11l.98-.03.03,5.85,3.09-.03v.03h10.34l-.03-51.05h-2.97s-.13.03-.13.03v-.99s0,0,0,0l4.08-.03.03,52.98h-3.94Z"/>
|
||||
<path d="M281.11,21.35h5V5.91s-.03-.36-.03-.36h-4.66s-.28.03-.28.03V.59s-.03-.59-.03-.59h-6.75s-.45.03-.45.03v-.03s-6.75,0-6.75,0l-.48.03v12.97s-6.88,0-6.88,0l-.33.03v12.97s-6.88,0-6.88,0l-.3.03v-.03s-2.2.03-2.2.03V6.86s-.03-1.31-.03-1.31h-4.66s-.31.03-.31.03V0s-6.76,0-6.76,0l-.45.03v-.03h-6.75s-.48.03-.48.03l.03,65.62,2.2-.03.03,7.73h17.18v-24.4s-.03-1.6-.03-1.6l2.24-.03v.03h7.18v3.62s.03,1.68.03,1.68h7.18v11.86s.03,1.14.03,1.14l2.2-.03v7.54s.03.19.03.19h17.18v-15.44s-.03-.36-.03-.36h-4.76s-.18.02-.18.02v-4.98s-.03-.59-.03-.59l-2.2.03v-7.29s-.03-.18-.03-.18h-4.76s-.18.02-.18.02v-3.89s-.03-1.69-.03-1.69l-2.2.03v-4.51s-.03-.17-.03-.17l2.24-.03v.03h5v-12.76s-.03-.24-.03-.24l2.24-.03v.03ZM245.07,6.48l4.08-.03.03,19.55-.98.03V8.62s-.03-1.19-.03-1.19h-2.9s-.19.03-.19.03v-1.06s0,.08,0,.08ZM247.3,26h-2.14s-.08.02-.08.02V8.3s0,.05,0,.05l2.2-.03.03,17.68ZM237.86,65.63v.03h7.23v-26s7.18,0,7.18,0h7.18v4.9s-6.88,0-6.88,0l-.3.03v-.03s-4.77,0-4.77,0l-.24.03.03,25.97h-2.14s-.1.03-.1.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03v-4.54s-.03-.38-.03-.38l2.24-.03ZM252.57,46.43l-.3.03v-.03s-2.97,0-2.97,0l-.16.03.03,25.97h-3.94s-.17.03-.17.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03v-6.26s-.03-.54-.03-.54l.98-.03.03,5.85,3.1-.03v.03h10.33v-24.4s-.03-1.6-.03-1.6l4.11-.03v.03h7.18v.95s-6.88,0-6.88,0ZM268.9,38.87l.03.13h-2.14s-.07.02-.07.02v-12.36s7.21,0,7.21,0v-13s7.21,0,7.21,0v-5.3s2.18-.03,2.18-.03v9.83s.03.4.03.4h-2.14s-.1.03-.1.03v-.03s-4.76,0-4.76,0l-.24.03v12.73s.03.24.03.24h-2.14s-.1.03-.1.03v-.03s-4.76,0-4.76,0l-.24.03v7.29ZM285.18,58.45v13.43s.03.56.03.56h-3.94s-.17.03-.17.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03v-6.55s-.03-.26-.03-.26l.98-.03v5.7s.03.15.03.15l3.1-.03v.03h10.33v-11.77s-.03-.28-.03-.28h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03ZM277.98,45.45v6.44s.03.11.03.11l-.98.03v-5.46s-.03-.14-.03-.14h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03ZM273.92,52.02v-4.67s2.18-.03,2.18-.03l.03,4.68h-2.14s-.07.02-.07.02ZM273.9,65.63v.03h7.23v-5.3s2.18-.03,2.18-.03v9.83s.03.4.03.4h-2.14s-.1.03-.1.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03v-4.75s-.03-.18-.03-.18l2.24-.03ZM278.13,20.43l-.16.03v12.73s.03.24.03.24h-3.94s-.17.03-.17.03v-.03s-2.97,0-2.97,0l-.16.03v5.45s.03.09.03.09l-.98.03v-6.31s-.03-.25-.03-.25l4.11-.03v.03h3.13v-12.76s-.03-.24-.03-.24l4.11-.03v.03h3.13V7.71s-.03-.28-.03-.28h-2.9s-.17.02-.17.02v-.98s4.05-.03,4.05-.03v13.43s.03.56.03.56h-3.94s-.17.03-.17.03v-.03s-2.97,0-2.97,0Z"/>
|
||||
<path d="M415.8,5.55h-4.66s-.29.03-.29.03v-2.82s-.03-2.76-.03-2.76h-6.75s-.45.03-.45.03v-.03s-6.75,0-6.75,0l-.48.03.02,51.97-2.2.03-.03-7.48h-4.76s-.18.02-.18.02v-3.89s-.03-1.69-.03-1.69l-2.2.03-.03-7.48h-4.76s-.18.02-.18.02v-3.33s-.03-2.24-.03-2.24l-2.2.03-.03-7.48h-4.76s-.18.02-.18.02v-3.33s-.03-2.24-.03-2.24l-2.2.03-.03-7.48h-4.66s-.28.03-.28.03v-2.78s-.03-2.8-.03-2.8h-6.75s-.45.03-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.48.03.03,65.62,2.2-.03.03,7.73h17.18l-.03-39,2.23-.03v5.33s2.21-.03,2.21-.03l.03,7.73h4.97v5.3s2.21-.03,2.21-.03v7.54s.03.19.03.19h4.97v5.3s2.21-.03,2.21-.03v7.54s.03.19.03.19h31.6V13.62s-.03-8.07-.03-8.07ZM393.29,45.45v6.31s.03.25.03.25l-.98.03-.03-5.6h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03ZM389.23,52.02v-4.67s2.18-.03,2.18-.03v4.51s.03.17.03.17h-2.14s-.07.02-.07.02ZM389.21,65.63v.03h21.65V8.35s2.18-.03,2.18-.03v58.37s.03,3.86.03,3.86h-2.14s-.09.03-.09.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.93,2.24-.03ZM386.08,32.45v6.44s.03.11.03.11l-.98.03-.03-5.6h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03ZM381.99,52.63v4.93s-2.19.03-2.19.03l-.03-4.93,2.22-.03ZM378.87,19.45v6.44s.03.11.03.11l-.98.03-.03-5.6h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03ZM374.78,39.63v4.93s-2.19.03-2.19.03l-.03-4.93,2.22-.03ZM371.67,6.45l.03,6.55-.98.03-.03-5.6h-2.9s-.17.02-.17.02v-.98s4.05-.03,4.05-.03ZM353.18,65.63v.03h7.23V26.66s7.17,0,7.17,0v4.9s-4.76,0-4.76,0l-.24.03.03,38.97h-2.14s-.09.02-.09.02v-.02s-6.91,0-6.91,0l-.3.03v-.03s-2.21.03-2.21.03l-.03-4.93,2.24-.03ZM364.62,33.43l-.16.03.03,38.97h-3.94s-.17.03-.17.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-3.94,0-3.94,0l-.14.03-.03-6.8.98-.03.03,5.85,3.1-.03v.03h10.33l-.03-39,4.1-.03v.98s-2.97,0-2.97,0ZM367.68,13l-.07.02v-4.67s2.18-.03,2.18-.03l.03,4.68h-2.14ZM370.86,46.43l-.14.03-.03-6.8.98-.03.03,5.85,3.09-.03v.98s-3.93,0-3.93,0ZM374.89,26l-.07.02v-4.67s2.18-.03,2.18-.03l.03,4.68h-2.14ZM378.06,59.43l-.14.03-.03-6.8.98-.03v5.7s.03.15.03.15l3.09-.03v.98s-3.93,0-3.93,0ZM382.09,39l-.07.02v-4.67s2.18-.03,2.18-.03l.03,4.68h-2.14ZM411,72.43l-.17.02v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03-.03-6.8.98-.03v5.7s.03.15.03.15l3.1-.03v.03h24.75V13.62s-.03-6.2-.03-6.2h-2.9s-.17.02-.17.02v-.98s4.05-.03,4.05-.03v61.88s.03,4.1.03,4.1h-3.94Z"/>
|
||||
<path d="M338.97,18.56l-.19.02-.02-5.58-2.2.03-.03-7.48h-4.66s-.3.03-.3.03l-.02-5.58h-6.75s-.45.03-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.45.03v-.03s-6.75,0-6.75,0l-.48.03v12.97s-6.88,0-6.88,0l-.33.03v48.21s.03,4.41.03,4.41l2.2-.03v7.38s.03.35.03.35h17.18l-.03-26,2.23-.03v.03h14.39v10.08s.03,8.23.03,8.23l2.2-.03.03,7.73h17.18l-.03-54.8h-4.76ZM324.32,26h-6.88s-.3.03-.3.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.68,2.23-.03v.03h14.39v4.65ZM324.32,20.43h-6.88s-.3.03-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.97,0-2.97,0l-.16.03.03,5.54-.98.03-.03-6.55,4.11-.03v.03h14.39v.95ZM309.93,13.66h14.38v4.9s-6.88,0-6.88,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-4.77,0-4.77,0l-.24.03.03,7.41h-2.14s-.07.02-.07.02v-12.36s7.18,0,7.18,0ZM295.52,65.63v.03h7.23v-26s7.18,0,7.18,0h14.38v4.9s-6.88,0-6.88,0l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-4.77,0-4.77,0l-.24.03.03,25.97h-2.14s-.1.03-.1.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-2.2.03-2.2.03l-.03-4.93,2.24-.03ZM317.44,46.43l-.3.03v-.03s-6.91,0-6.91,0l-.3.03v-.03s-2.97,0-2.97,0l-.16.03.03,25.97h-3.94s-.17.03-.17.03v-.03s-6.9,0-6.9,0l-.3.03v-.03s-3.93,0-3.93,0l-.14.03-.03-6.8.98-.03v5.58s.03.27.03.27l3.09-.03v.03h10.34l-.03-26,4.11-.03v.03h14.39v.95s-6.88,0-6.88,0ZM335.63,6.45l.03,6.55-.98.03-.03-5.6h-2.9s-.17.03-.17.03v-.98s4.06-.03,4.06-.03ZM331.58,13.02v-3.42s0-1.24,0-1.24l2.18-.03.03,4.68h-2.14s-.07.02-.07.02ZM331.55,65.63v.03h7.23V21.35s2.18-.03,2.18-.03l.03,49.23h-2.14s-.09.02-.09.02v-.02s-6.91,0-6.91,0l-.3.03v-.03s-2.21.03-2.21.03l-.03-4.93,2.24-.03ZM338.93,72.43l-.17.02v-.03s-6.91,0-6.91,0l-.3.03v-.03s-3.94,0-3.94,0l-.14.03-.03-6.8.98-.03.03,5.85,3.09-.03v.03h10.34l-.03-51.05h-2.97s-.1.02-.1.02v-.97s4.05-.03,4.05-.03l.03,52.98h-3.94Z"/>
|
||||
</g>
|
||||
<polygon points="403.62 72.46 403.62 72.46 403.62 72.46 396.72 72.46 396.42 72.46 396.42 72.46 396.42 72.46 396.42 73.33 403.62 73.33 403.62 72.49 403.62 72.46"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 82 KiB |
BIN
docs/images/vk-create-pr.png
Normal file
|
After Width: | Height: | Size: 883 KiB |
BIN
docs/images/vk-create-project.png
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
docs/images/vk-diffs.png
Normal file
|
After Width: | Height: | Size: 404 KiB |
BIN
docs/images/vk-logs.png
Normal file
|
After Width: | Height: | Size: 356 KiB |
BIN
docs/images/vk-mcp-server-config.jpeg
Normal file
|
After Width: | Height: | Size: 349 KiB |
BIN
docs/images/vk-popular-mcp-servers.png
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
docs/images/vk-processes.png
Normal file
|
After Width: | Height: | Size: 225 KiB |
BIN
docs/images/vk-raycast-mcp-part-1.png
Normal file
|
After Width: | Height: | Size: 615 KiB |
BIN
docs/images/vk-raycast-mcp-part-2.png
Normal file
|
After Width: | Height: | Size: 543 KiB |
BIN
docs/images/vk-settings.png
Normal file
|
After Width: | Height: | Size: 346 KiB |
BIN
docs/images/vk-task-detail.jpeg
Normal file
|
After Width: | Height: | Size: 644 KiB |
@@ -1,20 +1,17 @@
|
||||
---
|
||||
title: "Vibe Kanban Documentation"
|
||||
description: "Welcome to Vibe Kanban - the kanban board for developers working with AI coding agents"
|
||||
description: "A specialised kanban board designed for developers who want to track and manage their coding tasks while working with AI coding agents. It provides seamless integration with various coding agents and helps you organise your development workflow efficiently."
|
||||
sidebarTitle: "Home"
|
||||
---
|
||||
|
||||
# Welcome to Vibe Kanban
|
||||
|
||||
Vibe Kanban is a specialized kanban board designed for developers who want to track and manage their coding tasks while working with AI coding agents. It provides seamless integration with various coding agents and helps you organize your development workflow efficiently.
|
||||
|
||||
## What is Vibe Kanban?
|
||||
|
||||
Vibe Kanban transforms how developers work with AI coding agents by providing:
|
||||
|
||||
- **Task Management**: Create, organize, and track coding tasks on an intuitive kanban board
|
||||
- **Task Management**: Create, organise, and track coding tasks on an intuitive kanban board
|
||||
- **AI Agent Integration**: Works with popular coding agents like Amp, Claude Code, Cursor CLI, and more
|
||||
- **Git Integration**: Automatic branch management and pull request tracking
|
||||
- **Workspace Management**: Organize multiple projects with custom setup scripts
|
||||
- **Workspace Management**: Organise multiple projects with custom setup scripts
|
||||
- **Real-time Progress Tracking**: Monitor task attempts and coding agent execution
|
||||
|
||||
## Key Features
|
||||
@@ -25,15 +22,15 @@ Vibe Kanban transforms how developers work with AI coding agents by providing:
|
||||
</Card>
|
||||
|
||||
<Card title="Project Management" icon="folder" href="/user-guide/creating-projects">
|
||||
Organize your repositories with custom setup scripts and development workflows
|
||||
Organise your repositories with custom setup scripts and development workflows
|
||||
</Card>
|
||||
|
||||
<Card title="Task Tracking" icon="list-check" href="/user-guide/creating-tasks">
|
||||
Create and manage coding tasks with templates, descriptions, and progress tracking
|
||||
</Card>
|
||||
|
||||
<Card title="Git Integration" icon="git-branch" href="/global-settings">
|
||||
Automatic branch creation, PR management, and GitHub status synchronization
|
||||
<Card title="Git Integration" icon="code-branch" href="/user-guide/github-integration">
|
||||
Automatic branch creation, PR management, and GitHub status synchronisation
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@@ -52,7 +49,7 @@ Ready to get started? Follow our getting started guide to install and configure
|
||||
Complete guides for creating projects, tasks, and working with coding agents
|
||||
</Card>
|
||||
|
||||
<Card title="Settings" icon="gear" href="/global-settings">
|
||||
<Card title="Settings" icon="gear" href="/configuration-customisation/global-settings">
|
||||
Configure themes, default agents, GitHub integration, and more
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
86
docs/integrations/github-integration.mdx
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
title: "GitHub Integration"
|
||||
description: "Connect to GitHub to unlock seamless branch management and pull request workflows directly from your kanban board"
|
||||
---
|
||||
|
||||
Connect your GitHub account to push commits and create pull requests directly from task attempts.
|
||||
|
||||
## See It In Action
|
||||
|
||||
### Pull Request Creation Dialog
|
||||
|
||||
<Frame>
|
||||
<img src="/images/vk-create-pr.png" alt="Pull request creation dialog with title, description, and base branch selection" />
|
||||
</Frame>
|
||||
|
||||
When you're ready to create a PR, get a streamlined dialog that:
|
||||
- Pre-fills title and description from your task details
|
||||
- Lets you select the target branch (defaults to main/master)
|
||||
- Validates that your branch is ready to go
|
||||
- Provides direct links to your new pull request
|
||||
|
||||
### Smart Push/PR Button
|
||||
|
||||
<Frame>
|
||||
<img src="/images/task-attempt-push-button.png" alt="Task attempt interface showing dynamic push/PR button" />
|
||||
</Frame>
|
||||
|
||||
Each task attempt gets a smart button that adapts to your current state:
|
||||
- **"Create PR"** when ready to share your work
|
||||
- **"Push X commits"** when you have changes to upload
|
||||
- **"Push to PR"** when updating an existing pull request
|
||||
- **"Pushed!"** confirmation after successful operations
|
||||
|
||||
<Note>
|
||||
Each task attempt automatically creates an isolated git worktree, so you can work on multiple features simultaneously without conflicts.
|
||||
</Note>
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Connect Your GitHub Account
|
||||
|
||||
<Frame>
|
||||
<img src="/images/github-connect-settings.png" alt="Settings page with Connect GitHub Account button" />
|
||||
</Frame>
|
||||
|
||||
Click **Connect GitHub Account** in General Settings to authenticate with GitHub using device flow authentication.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/github-device-code.png" alt="GitHub device authentication dialog with verification code" />
|
||||
</Frame>
|
||||
|
||||
The authentication process is simple:
|
||||
1. Click **Sign in with GitHub**
|
||||
2. Visit the provided GitHub URL in your browser
|
||||
3. Enter the device code shown in the dialog
|
||||
4. Authorize Vibe Kanban in your browser
|
||||
5. Return to complete the setup
|
||||
|
||||
**Required Permissions**: Vibe Kanban needs access to your repositories (`repo`), basic profile info (`read:user`), and email address (`user:email`) for Git commits.
|
||||
|
||||
<Note>
|
||||
If you encounter permission issues when creating pull requests, you'll be prompted to provide a Personal Access Token as a fallback authentication method.
|
||||
</Note>
|
||||
|
||||
### Start Working with GitHub
|
||||
|
||||
<Steps>
|
||||
<Step title="Create or Import Projects">
|
||||
[Create projects](/core-features/creating-projects) from existing Git repositories to enable GitHub features.
|
||||
</Step>
|
||||
|
||||
<Step title="Work on Tasks">
|
||||
[Create task attempts](/core-features/creating-task-attempts) to start developing in isolated branches.
|
||||
</Step>
|
||||
|
||||
<Step title="Push and Create PRs">
|
||||
Use the dynamic push/PR button in task attempts to share your work on GitHub.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Next Steps
|
||||
|
||||
With GitHub connected, you can:
|
||||
- [Learn about creating projects](/core-features/creating-projects)
|
||||
- [Set up task attempts for feature development](/core-features/creating-task-attempts)
|
||||
- [Review code changes before committing](/core-features/reviewing-code-changes)
|
||||
89
docs/integrations/mcp-server-configuration.mdx
Normal file
@@ -0,0 +1,89 @@
|
||||
---
|
||||
title: "Connecting MCP Servers"
|
||||
description: "Configure MCP (Model Context Protocol) servers to enhance your coding agents within Vibe Kanban with additional tools and capabilities."
|
||||
---
|
||||
|
||||
|
||||
<Note>
|
||||
This page covers configuring MCP servers **within** Vibe Kanban for your coding agents. For connecting external MCP clients to Vibe Kanban's MCP server, see the [Vibe Kanban MCP Server](/integrations/vibe-kanban-mcp-server) guide.
|
||||
</Note>
|
||||
|
||||
## Overview
|
||||
|
||||
MCP servers provide additional functionality to coding agents through standardized protocols. You can configure different MCP servers for each coding agent in Vibe Kanban, giving them access to specialized tools like browser automation, access to remote logs, error tracking via Sentry, or documentation from Notion.
|
||||
|
||||
## Accessing MCP Server Configuration
|
||||
|
||||
1. Navigate to **Settings** in the Vibe Kanban interface
|
||||
2. Click on **MCP Servers** in the settings menu
|
||||
3. Select the coding agent you want to configure MCP servers for
|
||||
|
||||
<Frame>
|
||||
<img src="/images/vk-mcp-server-config.jpeg" alt="MCP Server configuration page showing available servers and one-click installation options" />
|
||||
</Frame>
|
||||
|
||||
## Popular MCP Servers
|
||||
|
||||
Vibe Kanban provides one-click installation for popular MCP servers.
|
||||
|
||||
<Frame>
|
||||
<img src="/images/vk-popular-mcp-servers.png" alt="Popular MCP servers available for one-click installation" />
|
||||
</Frame>
|
||||
|
||||
## Adding Custom MCP Servers
|
||||
|
||||
You can also add your own MCP servers by configuring them manually:
|
||||
|
||||
<Steps>
|
||||
<Step title="Select Coding Agent">
|
||||
Choose the coding agent you want to configure MCP servers for from the MCP Servers settings page.
|
||||
</Step>
|
||||
|
||||
<Step title="Update Server Configuration JSON">
|
||||
In the Server Configuration JSON field displayed in the UI, add your custom MCP server configuration. The JSON will show the current configuration for the selected agent, and you can modify it to include additional servers.
|
||||
|
||||
Example addition:
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"existing_server": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "some-existing-server"]
|
||||
},
|
||||
"my_custom_server": {
|
||||
"command": "node",
|
||||
"args": ["/path/to/my-server.js"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
</Step>
|
||||
|
||||
<Step title="Save and Test">
|
||||
After updating the JSON configuration:
|
||||
|
||||
1. Click "Save Settings" to apply changes
|
||||
2. Test the configuration by using the agent with MCP functionality
|
||||
3. Check agent logs for any connection issues
|
||||
|
||||
<Check>
|
||||
These changes update the global configuration file of the coding agent and will persist even if you stop using Vibe Kanban.
|
||||
</Check>
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Best Practices
|
||||
|
||||
<Tip>
|
||||
**Server Selection**: Choose MCP servers that complement your coding agent's primary function. For example, use Playwright for agents focused on web development.
|
||||
</Tip>
|
||||
|
||||
<Tip>
|
||||
**Limit MCP Servers**: Avoid adding too many MCP servers to a single coding agent. Too many servers and tools will degrade the effectiveness of coding agents by overwhelming them with options.
|
||||
</Tip>
|
||||
|
||||
## Next Steps
|
||||
|
||||
- Explore the [Agent Configurations](/configuration-customisation/agent-configurations) guide for advanced agent setup
|
||||
- Learn about [Creating Tasks](/core-features/creating-tasks) with enhanced MCP capabilities
|
||||
- Check out [Supported Coding Agents](/supported-coding-agents) for agent-specific features
|
||||
115
docs/integrations/vibe-kanban-mcp-server.mdx
Normal file
@@ -0,0 +1,115 @@
|
||||
---
|
||||
title: "Vibe Kanban MCP Server"
|
||||
description: "Configure the Vibe Kanban MCP server"
|
||||
---
|
||||
|
||||
Vibe Kanban exposes a local MCP (Model Context Protocol) server, allowing you to manage projects and tasks from external MCP clients like Claude Desktop, Raycast, or even coding agents running within Vibe Kanban itself.
|
||||
|
||||
<Note>
|
||||
This page covers connecting **external MCP clients** to Vibe Kanban's MCP server. For configuring MCP servers **within** Vibe Kanban for your coding agents, see the [MCP Server Configuration](/integrations/mcp-server-configuration) guide.
|
||||
</Note>
|
||||
|
||||
<Info>
|
||||
Vibe Kanban's MCP server is **local-only** - it runs on your computer and can only be accessed by applications installed locally. It cannot be accessed via publicly accessible URLs.
|
||||
</Info>
|
||||
|
||||
<video
|
||||
controls
|
||||
className="w-full aspect-video rounded-xl"
|
||||
src="https://vkcdn.britannio.dev/vk-mcp-server.mp4"
|
||||
></video>
|
||||
|
||||
## Setting Up MCP Integration
|
||||
|
||||
### Option 1: Using the Web Interface
|
||||
|
||||
This works if you're adding the Vibe Kanban MCP server to any [supported coding agent](/supported-coding-agents) **within** Vibe Kanban.
|
||||
|
||||
1. In Vibe Kanban Settings, navigate to the "MCP Servers" page
|
||||
2. In the "Popular servers" section, click on the Vibe Kanban card
|
||||
3. Click the `Save Settings` button
|
||||
|
||||
<Frame>
|
||||
<img src="/images/vk-mcp-server-config.jpeg" alt="MCP Servers configuration page showing how to add Vibe Kanban MCP server" />
|
||||
</Frame>
|
||||
|
||||
### Option 2: Manual Configuration
|
||||
|
||||
You can manually add the MCP server to your coding agent's configuration. Add the following configuration to your agent's MCP servers configuration:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"vibe_kanban": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "vibe-kanban", "--mcp"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Using MCP with Coding Agents
|
||||
|
||||
Once you have the MCP server configured, you can leverage it to streamline your project planning workflow:
|
||||
|
||||
1. **Plan Your Work**: Describe a large feature or project to your coding agent
|
||||
2. **Request Task Creation**: At the end of your task description, simply add "then turn this plan into tasks"
|
||||
3. **Automatic Task Generation**: Your coding agent will use the Vibe Kanban MCP server to automatically create structured tasks in your project
|
||||
|
||||
## Example Usage
|
||||
|
||||
### External Coding Agents
|
||||
|
||||
```
|
||||
I need to build a user authentication system with the following features:
|
||||
- User registration with email validation
|
||||
- Login/logout functionality
|
||||
- Password reset capability
|
||||
- Session management
|
||||
- Protected routes
|
||||
|
||||
Then turn this plan into tasks.
|
||||
```
|
||||
|
||||
The coding agent will break this down into individual tasks and add them to your Vibe Kanban project automatically.
|
||||
|
||||
### Internal Coding Agents (Within Vibe Kanban)
|
||||
|
||||
A powerful workflow involves using coding agents within Vibe Kanban that are also connected to the Vibe Kanban MCP server:
|
||||
|
||||
1. **Create a Planning Task**: Create a task in "plan mode" within Vibe Kanban
|
||||
2. **Explore and Plan**: The coding agent explores the codebase and develops a comprehensive plan
|
||||
3. **Generate Sub-Tasks**: Ask the coding agent to "create a series of individual tasks for this plan"
|
||||
4. **Automatic Population**: The agent uses the MCP server to populate individual tasks directly in the Vibe Kanban interface
|
||||
|
||||
This creates a seamless workflow where high-level planning automatically generates actionable tasks in your project board.
|
||||
|
||||
## Installation Instructions for MCP Clients
|
||||
|
||||
### Raycast Example
|
||||
|
||||
Raycast is a popular MCP client that can connect to Vibe Kanban's MCP server. Here's how to configure it:
|
||||
|
||||
For complete Raycast MCP configuration details, see the [official Raycast MCP documentation](https://manual.raycast.com/model-context-protocol).
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Step 1: Open MCP Server Installer">
|
||||
<Frame>
|
||||
<img src="/images/vk-raycast-mcp-part-1.png" alt="Raycast MCP configuration - adding Vibe Kanban server" />
|
||||
</Frame>
|
||||
|
||||
Configure the Vibe Kanban MCP server in Raycast by adding the server details.
|
||||
</Tab>
|
||||
|
||||
<Tab title="Step 2: Supply Command">
|
||||
<Frame>
|
||||
<img src="/images/vk-raycast-mcp-part-2.png" alt="Raycast MCP configuration - server successfully added" />
|
||||
</Frame>
|
||||
|
||||
Once configured, you'll see the Vibe Kanban MCP server listed and ready to use in Raycast.
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<Note>
|
||||
Similar configuration steps apply to other MCP clients like Claude Desktop, VS Code with MCP extensions, or any custom MCP client implementations.
|
||||
</Note>
|
||||
163
docs/integrations/vscode-extension.mdx
Normal file
@@ -0,0 +1,163 @@
|
||||
---
|
||||
title: "VSCode Extension Integration"
|
||||
description: "Complete guide to using the Vibe Kanban extension with VSCode, Cursor, and Windsurf"
|
||||
---
|
||||
|
||||
The Vibe Kanban VSCode extension brings task management directly into your IDE, providing seamless integration with logs, diffs, and process monitoring. This extension works with VSCode and popular forks including Cursor and Windsurf.
|
||||
|
||||
<video
|
||||
controls
|
||||
className="w-full aspect-video rounded-xl"
|
||||
src="https://vkcdn.britannio.dev/vk-ide-extension-light.mp4"
|
||||
></video>
|
||||
|
||||
## Installation
|
||||
|
||||
<Tabs>
|
||||
<Tab title="VSCode">
|
||||
Install directly from the Visual Studio Code Marketplace:
|
||||
|
||||
<Card title="VSCode Marketplace" icon="download" href="https://marketplace.visualstudio.com/items?itemName=bloop.vibe-kanban">
|
||||
Install the official Vibe Kanban extension for VSCode
|
||||
</Card>
|
||||
|
||||
Alternatively, search for the extension ID in VSCode:
|
||||
1. Open VSCode
|
||||
2. Press `Ctrl+Shift+X` (Windows/Linux) or `Cmd+Shift+X` (macOS) to open Extensions
|
||||
3. Search for `@id:bloop.vibe-kanban`
|
||||
4. Click **Install**
|
||||
</Tab>
|
||||
|
||||
<Tab title="Cursor">
|
||||
For Cursor, use the Open VSX Registry:
|
||||
|
||||
<Card title="Open VSX Registry" icon="download" href="https://open-vsx.org/extension/bloop/vibe-kanban">
|
||||
Install from Open VSX for Cursor compatibility
|
||||
</Card>
|
||||
|
||||
<Tip>
|
||||
Since deeplinking from Open VSX doesn't work reliably in Cursor, the easiest installation method is searching by extension ID within the IDE.
|
||||
</Tip>
|
||||
|
||||
**Installation Steps**:
|
||||
1. Open Cursor
|
||||
2. Open the Extensions panel
|
||||
3. Search for `@id:bloop.vibe-kanban`
|
||||
4. Install the extension
|
||||
</Tab>
|
||||
|
||||
<Tab title="Windsurf">
|
||||
For Windsurf, use the Open VSX Registry:
|
||||
|
||||
<Card title="Open VSX Registry" icon="download" href="https://open-vsx.org/extension/bloop/vibe-kanban">
|
||||
Install from Open VSX for Windsurf compatibility
|
||||
</Card>
|
||||
|
||||
<Tip>
|
||||
Since deeplinking from Open VSX doesn't work reliably in Windsurf, the easiest installation method is searching by extension ID within the IDE.
|
||||
</Tip>
|
||||
|
||||
**Installation Steps**:
|
||||
1. Open Windsurf
|
||||
2. Open the Extensions panel
|
||||
3. Search for `@id:bloop.vibe-kanban`
|
||||
4. Install the extension
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Features
|
||||
|
||||
The extension provides an integrated workspace view with three main components:
|
||||
|
||||
### Logs View
|
||||
- List of task attempts for the current task
|
||||
- Agent steps performed in each task attempt
|
||||
|
||||
### Diffs View
|
||||
- Side-by-side comparison of code changes
|
||||
- Inline commenting and review capabilities
|
||||
|
||||
### Processes View
|
||||
- Monitor running task processes
|
||||
- Process status indicators (running, completed, failed)
|
||||
|
||||
### Task Management
|
||||
- **Task Iteration**: Continue iterating on the current ongoing task
|
||||
- **Status Updates**: Real-time task status synchronization
|
||||
|
||||
## Usage Workflow
|
||||
|
||||
<Steps>
|
||||
<Step title="Start a task in Vibe Kanban">
|
||||
Navigate to your project's kanban board and create or select an existing task.
|
||||
</Step>
|
||||
|
||||
<Step title="Open task in full screen">
|
||||
Click on the task to open its detailed view, then switch to full screen mode for better visibility.
|
||||
</Step>
|
||||
|
||||
<Step title="Launch IDE integration">
|
||||
Click the **"Open in VSCode"**, **"Open in Cursor"**, or **"Open in Windsurf"** button depending on your preferred IDE.
|
||||
|
||||
<Note>
|
||||
The button text will reflect your editor choice configured in Vibe Kanban settings.
|
||||
</Note>
|
||||
</Step>
|
||||
|
||||
<Step title="Work in your IDE">
|
||||
Your IDE will open in the task's dedicated worktree with the extension UI populated with:
|
||||
- Current task context
|
||||
- Real-time logs
|
||||
- Code diffs
|
||||
- Process monitoring
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Empty Extension UI
|
||||
|
||||
**Problem**: The extension UI appears empty or shows no task information.
|
||||
|
||||
**Solution**: Ensure you're working within a worktree created by a Vibe Kanban task.
|
||||
|
||||
<Warning>
|
||||
The extension can only display task information when VSCode is opened in a directory that corresponds to an active Vibe Kanban task worktree.
|
||||
</Warning>
|
||||
|
||||
**Steps to resolve**:
|
||||
1. Verify you opened VSCode through the "Open in [IDE]" button from a Vibe Kanban task
|
||||
2. Check that you're in the correct directory/worktree
|
||||
3. If the issue persists, restart your IDE and try the workflow again
|
||||
|
||||
### Extension Not Loading
|
||||
|
||||
**Problem**: The Vibe Kanban extension doesn't appear in your IDE.
|
||||
|
||||
**Solutions**:
|
||||
- Verify the extension is installed by searching `@id:bloop.vibe-kanban` in Extensions
|
||||
- Restart your IDE after installation
|
||||
- Check that you're using a compatible IDE version
|
||||
- For Cursor/Windsurf users, ensure you installed from Open VSX Registry
|
||||
|
||||
## Best Practices
|
||||
|
||||
<Tip>
|
||||
**Workflow Optimization**: Always start tasks from the Vibe Kanban web interface before opening in your IDE to ensure proper context and worktree setup.
|
||||
</Tip>
|
||||
|
||||
<Tip>
|
||||
**Performance**: Close unused IDE windows to reduce resource usage.
|
||||
</Tip>
|
||||
|
||||
## Supported IDEs
|
||||
|
||||
| IDE | Status | Installation Method |
|
||||
|-----|--------|-------------------|
|
||||
| **VSCode** | ✅ Fully Supported | VSCode Marketplace |
|
||||
| **Cursor** | ✅ Fully Supported | Open VSX Registry |
|
||||
| **Windsurf** | ✅ Fully Supported | Open VSX Registry |
|
||||
|
||||
<Info>
|
||||
The extension is designed to work with any VSCode-compatible editor. If you're using a different VSCode fork, try installing from Open VSX Registry using the extension ID `bloop.vibe-kanban`.
|
||||
</Info>
|
||||
@@ -1,11 +0,0 @@
|
||||
# Onboarding
|
||||
|
||||
When you first run Vibe Kanban (`npx vibe-kanban`), you'll be guided through an onboarding process to configure the application for your workflow. During onboarding, you will:
|
||||
|
||||
- Choose your default agent configuration (agent and optional variant)
|
||||
- Authenticate with GitHub for branch management and PR tracking
|
||||
- Set up your initial workspace directory
|
||||
|
||||

|
||||
|
||||
Once onboarding is complete, you'll be ready to create your first project and start tracking tasks.
|
||||
@@ -1,80 +0,0 @@
|
||||
---
|
||||
title: "Quickstart"
|
||||
description: "Start building awesome documentation in minutes"
|
||||
---
|
||||
|
||||
## Get started in three steps
|
||||
|
||||
Get your documentation site running locally and make your first customization.
|
||||
|
||||
### Step 1: Set up your local environment
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion icon="copy" title="Clone your docs locally">
|
||||
During the onboarding process, you created a GitHub repository with your docs content if you didn't already have one. You can find a link to this repository in your [dashboard](https://dashboard.mintlify.com).
|
||||
|
||||
To clone the repository locally so that you can make and preview changes to your docs, follow the [Cloning a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) guide in the GitHub docs.
|
||||
</Accordion>
|
||||
<Accordion icon="rectangle-terminal" title="Start the preview server">
|
||||
1. Install the Mintlify CLI: `npm i -g mint`
|
||||
2. Navigate to your docs directory and run: `mint dev`
|
||||
3. Open `http://localhost:3000` to see your docs live!
|
||||
|
||||
<Tip>Your preview updates automatically as you edit files.</Tip>
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
### Step 2: Deploy your changes
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion icon="github" title="Install our GitHub app">
|
||||
Install the Mintlify GitHub app from your [dashboard](https://dashboard.mintlify.com/settings/organization/github-app).
|
||||
|
||||
Our GitHub app automatically deploys your changes to your docs site, so you don't need to manage deployments yourself.
|
||||
</Accordion>
|
||||
<Accordion icon="palette" title="Update your site name and colors">
|
||||
For a first change, let's update the name and colors of your docs site.
|
||||
|
||||
1. Open `docs.json` in your editor.
|
||||
2. Change the `"name"` field to your project name.
|
||||
3. Update the `"colors"` to match your brand.
|
||||
4. Save and see your changes instantly at `http://localhost:3000`.
|
||||
|
||||
<Tip>Try changing the primary color to see an immediate difference!</Tip>
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
### Step 3: Go live
|
||||
|
||||
<Accordion icon="rocket" title="Publish your docs">
|
||||
1. Commit and push your changes.
|
||||
2. Your docs will update and be live in moments!
|
||||
</Accordion>
|
||||
|
||||
## Next steps
|
||||
|
||||
Now that you have your docs running, explore these key features:
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Write Content" icon="pen-to-square" href="/essentials/markdown">
|
||||
Learn MDX syntax and start writing your documentation.
|
||||
</Card>
|
||||
|
||||
<Card title="Customize style" icon="palette" href="/essentials/settings">
|
||||
Make your docs match your brand perfectly.
|
||||
</Card>
|
||||
|
||||
<Card title="Add code examples" icon="square-code" href="/essentials/code">
|
||||
Include syntax-highlighted code blocks.
|
||||
</Card>
|
||||
|
||||
<Card title="API documentation" icon="code" href="/api-reference/introduction">
|
||||
Auto-generate API docs from OpenAPI specs.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
<Note>
|
||||
**Need help?** See our [full documentation](https://mintlify.com/docs) or join our [community](https://mintlify.com/community).
|
||||
</Note>
|
||||
@@ -1,4 +0,0 @@
|
||||
One of the core principles of software development is DRY (Don't Repeat
|
||||
Yourself). This is a principle that applies to documentation as
|
||||
well. If you find yourself repeating the same content in multiple places, you
|
||||
should consider creating a custom snippet to keep your content in sync.
|
||||
@@ -1,14 +1,178 @@
|
||||
# Supported Coding Agents
|
||||
---
|
||||
title: "Supported Coding Agents"
|
||||
description: "Complete guide to all coding agents supported by Vibe Kanban, including installation and authentication instructions"
|
||||
---
|
||||
|
||||
Vibe Kanban integrates with a variety of coding agents. These agents are available via `npx` and can be selected when creating task attempts.
|
||||
|
||||
| Agent | Documentation |
|
||||
|--------------------------------------|-----------------------------------|
|
||||
| [Amp](/docs/supported-coding-agents/amp) | Amp code completion |
|
||||
| [Claude Code](/docs/supported-coding-agents/claude-code) | Anthropic's Claude Code |
|
||||
| [Cursor CLI](/docs/supported-coding-agents/cursor-cli) | Cursor's command-line agent |
|
||||
| [CCR (Claude Code Router)](/docs/supported-coding-agents/ccr) | Orchestrate multiple Claude Code |
|
||||
| [Codex](/docs/supported-coding-agents/codex) | OpenAI Codex integration |
|
||||
| [Gemini CLI](/docs/supported-coding-agents/gemini-cli) | Google Gemini CLI |
|
||||
| [SST OpenCode](/docs/supported-coding-agents/sst-opencode) | SST's OpenCode |
|
||||
| [Qwen Code](/docs/supported-coding-agents/qwen-code) | Qwen code-focused assistant |
|
||||
<AccordionGroup>
|
||||
|
||||
<Accordion title="Amp" icon="code">
|
||||
**Amp code completion agent**
|
||||
|
||||
## Installation
|
||||
Amp is now available via npx - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
You need to authenticate with Amp outside of Vibe Kanban before using it. Please follow the authentication instructions on the [Amp Owner's Manual](https://ampcode.com/manual#install).
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Claude Code" icon="code">
|
||||
**Anthropic's Claude Code**
|
||||
|
||||
## Installation
|
||||
Claude Code is now available via npx - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
You need to authenticate with Claude Code outside of Vibe Kanban before using it. Please follow the authentication instructions on the [Claude Code GitHub page](https://github.com/anthropics/claude-code).
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Cursor CLI" icon="code">
|
||||
**Cursor's command-line agent**
|
||||
|
||||
## Installation
|
||||
Install Cursor CLI using the official guide: https://docs.cursor.com/en/cli/installation. On most systems you can run `curl https://cursor.com/install -fsS | bash`, then verify with `cursor-agent --version`.
|
||||
|
||||
## Authentication
|
||||
Sign in with `cursor-agent login` (opens a browser). You can also set the `CURSOR_API_KEY=...` environment variable. Full instructions: https://docs.cursor.com/en/cli/reference/authentication
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="CCR (Claude Code Router)" icon="code">
|
||||
**Orchestrate multiple Claude Code models**
|
||||
|
||||
CCR (Claude Code Router) lets you route coding prompts across different LLM providers and models, and select specialised models for specific tasks like long context, background work, or image understanding.
|
||||
|
||||
## Installation
|
||||
CCR is available via `npx` – no separate installation required.
|
||||
|
||||
```bash
|
||||
npx -y @musistudio/claude-code-router ui
|
||||
```
|
||||
|
||||
This launches the CCR local UI where you configure providers and models.
|
||||
|
||||
## Authentication
|
||||
Authenticate and configure CCR outside of Vibe Kanban. Follow the instructions on the CCR GitHub repo:
|
||||
|
||||
- GitHub: https://github.com/musistudio/claude-code-router
|
||||
|
||||
You'll add providers, set API keys, and register model names in the CCR UI or via CCR's JSON configuration (see the CCR repo for the schema and file location).
|
||||
|
||||
## Configure CCR (Providers and Models)
|
||||
|
||||
Configure CCR either via the UI or JSON config.
|
||||
|
||||
In the CCR UI (`npx -y @musistudio/claude-code-router ui`):
|
||||
|
||||
1) Add providers
|
||||
- Choose a provider (e.g., `openrouter`, `deepseek`, etc.).
|
||||
- Enter the required API key(s) and settings for that provider.
|
||||
|
||||
2) Add models
|
||||
- For each provider, register the model identifier (e.g., `moonshotai/kimi-k2-0905`, `deepseek-chat`).
|
||||
- CCR supports configuring different models for specific cases:
|
||||
- `default`: general coding
|
||||
- `background`: lightweight/background operations
|
||||
- `think`: models that support "thinking" modes
|
||||
- `longContext`: very long inputs/files
|
||||
- `webSearch`: models that support web/tool use
|
||||
- `image`: models with vision capabilities
|
||||
|
||||
Note: not all models support web search, thinking, or images. Choose models accordingly in the CCR UI.
|
||||
|
||||
### Configure via JSON (optional)
|
||||
CCR can also be configured via its JSON configuration file. Refer to the CCR GitHub documentation for the exact schema, keys, and file location. Define providers (with API keys) and map the model cases (`default`, `background`, `think`, `longContext`, `webSearch`, `image`) to specific provider/model pairs.
|
||||
|
||||
### Example: OpenRouter provider configured in CCR UI
|
||||
|
||||
<Frame>
|
||||
<img src="/images/ccr-openrouter-ui.png" alt="OpenRouter configured in CCR UI" />
|
||||
</Frame>
|
||||
|
||||
### Example: CCR model mapping (default/background/think/etc.)
|
||||
|
||||
<Frame>
|
||||
<img src="/images/ccr-config-example.png" alt="CCR models configuration example" />
|
||||
</Frame>
|
||||
|
||||
## Configure Vibe Kanban
|
||||
|
||||
Vibe Kanban does not ship a default configuration for CCR. Add configurations to the existing Claude Code agent:
|
||||
|
||||
1) Open the "Coding Agent Configurations" page.
|
||||
2) Add a new configuration for the Claude Code agent (or edit an existing one).
|
||||
3) Enable the `claude_code_router` checkbox.
|
||||
4) Optionally set a model string to target a specific CCR provider/model.
|
||||
|
||||
See the [Agent Profiles & Variants](/configuration-customisation/agent-configurations) guide for managing agent configurations.
|
||||
|
||||
Model string format: `<provider>,<model-name>`
|
||||
|
||||
Examples:
|
||||
```text
|
||||
openrouter,moonshotai/kimi-k2-0905
|
||||
deepseek,deepseek-chat
|
||||
```
|
||||
|
||||
Tips:
|
||||
- Create multiple configurations if you want easy switching between different models.
|
||||
- Leave the model string empty if you want CCR to use its own routing based on your CCR UI configuration (e.g., its `default`/`longContext`/etc. mappings).
|
||||
|
||||
### Example: Claude Code agent configuration in Vibe Kanban
|
||||
|
||||
<Frame>
|
||||
<img src="/images/vk-ccr-agent-config.png" alt="Claude Code agent configuration in Vibe Kanban" />
|
||||
</Frame>
|
||||
|
||||
## Using CCR in Vibe Kanban
|
||||
|
||||
When creating a Task Attempt, select the coding agent and configuration: choose the Claude Code agent, then pick one of your CCR-enabled configurations.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- Authentication errors: verify your API keys/provider settings in CCR (via UI or JSON config).
|
||||
- Model not found: confirm the model identifier is correct for the chosen provider.
|
||||
- Missing features (webSearch/think/image): switch to a model that supports the capability and update your CCR mapping (via UI or JSON config).
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Codex" icon="code">
|
||||
**OpenAI Codex integration**
|
||||
|
||||
## Installation
|
||||
OpenAI Codex is now available via `npx` - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
You need to configure your OpenAI API credentials before using Codex. Please set the `OPENAI_API_KEY` environment variable. For more details, see the [OpenAI documentation](https://platform.openai.com/docs/guides/code).
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Gemini CLI" icon="code">
|
||||
**Google Gemini CLI**
|
||||
|
||||
## Installation
|
||||
Gemini CLI is now available via npx - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
You need to authenticate with Gemini CLI outside of Vibe Kanban before using it. Please follow the authentication instructions on the [Gemini CLI GitHub page](https://github.com/google-gemini/gemini-cli).
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="SST OpenCode" icon="code">
|
||||
**SST's OpenCode**
|
||||
|
||||
## Installation
|
||||
SST OpenCode is now available via `npx` - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
You need to authenticate with SST OpenCode outside of Vibe Kanban before using it. Please follow the authentication instructions on the [SST OpenCode GitHub page](https://github.com/sst/opencode).
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Qwen Code" icon="code">
|
||||
**Qwen code-focused assistant**
|
||||
|
||||
## Installation
|
||||
Qwen Code is available via npx - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
You need to authenticate with Qwen outside of Vibe Kanban before using it. Please follow the authentication instructions in the official Qwen documentation: https://github.com/QwenLM/qwen-code
|
||||
</Accordion>
|
||||
|
||||
</AccordionGroup>
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
# Amp
|
||||
|
||||
## Installation
|
||||
|
||||
Amp is now available via npx - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
|
||||
You need to authenticate with Amp outside of Vibe Kanban before using it. Please follow the authentication instructions on the [Amp Owner's Manual](https://ampcode.com/manual#install).
|
||||
@@ -1,93 +0,0 @@
|
||||
# CCR (Claude Code Router)
|
||||
|
||||
CCR (Claude Code Router) lets you route coding prompts across different LLM providers and models, and select specialized models for specific tasks like long context, background work, or image understanding.
|
||||
|
||||
## Installation
|
||||
|
||||
CCR is available via `npx` – no separate installation required.
|
||||
|
||||
```bash
|
||||
npx -y @musistudio/claude-code-router ui
|
||||
```
|
||||
|
||||
This launches the CCR local UI where you configure providers and models.
|
||||
|
||||
## Authentication
|
||||
|
||||
Authenticate and configure CCR outside of Vibe Kanban. Follow the instructions on the CCR GitHub repo:
|
||||
|
||||
- GitHub: https://github.com/musistudio/claude-code-router
|
||||
|
||||
You’ll add providers, set API keys, and register model names in the CCR UI or via CCR’s JSON configuration (see the CCR repo for the schema and file location).
|
||||
|
||||
## Configure CCR (Providers and Models)
|
||||
|
||||
Configure CCR either via the UI or JSON config.
|
||||
|
||||
In the CCR UI (`npx -y @musistudio/claude-code-router ui`):
|
||||
|
||||
1) Add providers
|
||||
- Choose a provider (e.g., `openrouter`, `deepseek`, etc.).
|
||||
- Enter the required API key(s) and settings for that provider.
|
||||
|
||||
2) Add models
|
||||
- For each provider, register the model identifier (e.g., `moonshotai/kimi-k2-0905`, `deepseek-chat`).
|
||||
- CCR supports configuring different models for specific cases:
|
||||
- `default`: general coding
|
||||
- `background`: lightweight/background operations
|
||||
- `think`: models that support “thinking” modes
|
||||
- `longContext`: very long inputs/files
|
||||
- `webSearch`: models that support web/tool use
|
||||
- `image`: models with vision capabilities
|
||||
|
||||
Note: not all models support web search, thinking, or images. Choose models accordingly in the CCR UI.
|
||||
|
||||
### Configure via JSON (optional)
|
||||
|
||||
CCR can also be configured via its JSON configuration file. Refer to the CCR GitHub documentation for the exact schema, keys, and file location. Define providers (with API keys) and map the model cases (`default`, `background`, `think`, `longContext`, `webSearch`, `image`) to specific provider/model pairs.
|
||||
|
||||
### Example: OpenRouter provider configured in CCR UI
|
||||
|
||||

|
||||
|
||||
### Example: CCR model mapping (default/background/think/etc.)
|
||||
|
||||

|
||||
|
||||
## Configure Vibe Kanban
|
||||
|
||||
Vibe Kanban does not ship a default configuration for CCR. Add configurations to the existing Claude Code agent:
|
||||
|
||||
1) Open the “Coding Agent Configurations” page.
|
||||
2) Add a new configuration for the Claude Code agent (or edit an existing one).
|
||||
3) Enable the `claude_code_router` checkbox.
|
||||
4) Optionally set a model string to target a specific CCR provider/model.
|
||||
|
||||
See the [Agent Profiles & Variants](/docs/user-guide/agent-configurations) guide for managing agent configurations.
|
||||
|
||||
Model string format: `<provider>,<model-name>`
|
||||
|
||||
Examples:
|
||||
|
||||
```text
|
||||
openrouter,moonshotai/kimi-k2-0905
|
||||
deepseek,deepseek-chat
|
||||
```
|
||||
|
||||
Tips:
|
||||
- Create multiple configurations if you want easy switching between different models.
|
||||
- Leave the model string empty if you want CCR to use its own routing based on your CCR UI configuration (e.g., its `default`/`longContext`/etc. mappings).
|
||||
|
||||
### Example: Claude Code agent configuration in Vibe Kanban
|
||||
|
||||

|
||||
|
||||
## Using CCR in Vibe Kanban
|
||||
|
||||
When creating a Task Attempt, select the coding agent and configuration: choose the Claude Code agent, then pick one of your CCR-enabled configurations.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- Authentication errors: verify your API keys/provider settings in CCR (via UI or JSON config).
|
||||
- Model not found: confirm the model identifier is correct for the chosen provider.
|
||||
- Missing features (webSearch/think/image): switch to a model that supports the capability and update your CCR mapping (via UI or JSON config).
|
||||
@@ -1,9 +0,0 @@
|
||||
# Claude Code
|
||||
|
||||
## Installation
|
||||
|
||||
Claude Code is now available via npx - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
|
||||
You need to authenticate with Claude Code outside of Vibe Kanban before using it. Please follow the authentication instructions on the [Claude Code GitHub page](https://github.com/anthropics/claude-code).
|
||||
@@ -1,9 +0,0 @@
|
||||
# Codex
|
||||
|
||||
## Installation
|
||||
|
||||
OpenAI Codex is now available via `npx` - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
|
||||
You need to configure your OpenAI API credentials before using Codex. Please set the `OPENAI_API_KEY` environment variable. For more details, see the [OpenAI documentation](https://platform.openai.com/docs/guides/code).
|
||||
@@ -1,9 +0,0 @@
|
||||
# Cursor CLI
|
||||
|
||||
## Installation
|
||||
|
||||
Install Cursor CLI using the official guide: https://docs.cursor.com/en/cli/installation. On most systems you can run `curl https://cursor.com/install -fsS | bash`, then verify with `cursor-agent --version`.
|
||||
|
||||
## Authentication
|
||||
|
||||
Sign in with `cursor-agent login` (opens a browser). You can also set the `CURSOR_API_KEY=...` environment variable. Full instructions: https://docs.cursor.com/en/cli/reference/authentication
|
||||
@@ -1,9 +0,0 @@
|
||||
# Gemini CLI
|
||||
|
||||
## Installation
|
||||
|
||||
Gemini CLI is now available via npx - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
|
||||
You need to authenticate with Gemini CLI outside of Vibe Kanban before using it. Please follow the authentication instructions on the [Gemini CLI GitHub page](https://github.com/google-gemini/gemini-cli).
|
||||
@@ -1,9 +0,0 @@
|
||||
# Qwen Code
|
||||
|
||||
## Installation
|
||||
|
||||
Qwen Code is available via npx - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
|
||||
You need to authenticate with Qwen outside of Vibe Kanban before using it. Please follow the authentication instructions in the official Qwen documentation: https://github.com/QwenLM/qwen-code
|
||||
@@ -1,9 +0,0 @@
|
||||
# SST OpenCode
|
||||
|
||||
## Installation
|
||||
|
||||
SST OpenCode is now available via `npx` - no separate installation required!
|
||||
|
||||
## Authentication
|
||||
|
||||
You need to authenticate with SST OpenCode outside of Vibe Kanban before using it. Please follow the authentication instructions on the [SST OpenCode GitHub page](https://github.com/sst/opencode).
|
||||
@@ -1,102 +0,0 @@
|
||||
# Agent Profiles & Variants
|
||||
|
||||
Agent profiles let you define multiple named variants for each supported coding agent. Variants capture small configuration differences (e.g., planning vs. coding, model choice, sandbox/approval levels) you can quickly select when creating an attempt or sending a follow‑up.
|
||||
|
||||
Profiles are used anywhere an agent runs:
|
||||
|
||||
- Onboarding: pick your default agent and optional variant
|
||||
- Settings → General: set the default agent configuration
|
||||
- Create Attempt dialog: choose agent and variant per attempt
|
||||
- Follow‑ups: continue using the attempt's selected profile/variant
|
||||
|
||||
## Where To Configure
|
||||
|
||||
Open Settings → Agents. You can edit agent configurations in two ways:
|
||||
|
||||
- Form editor: guided fields per agent
|
||||
|
||||

|
||||
|
||||
- JSON editor: edit the underlying `profiles.json` directly
|
||||
|
||||

|
||||
|
||||
The page shows the exact file path where your config is stored (profiles.json). The app saves only your overrides; built‑in defaults remain available and cannot be deleted.
|
||||
|
||||
## JSON Structure
|
||||
|
||||
The configuration file is a JSON object with an `executors` map. Each executor (agent) contains one or more variants. Every variant holds a single object for that agent with its options.
|
||||
|
||||
Example (abridged):
|
||||
|
||||
```json
|
||||
{
|
||||
"executors": {
|
||||
"CLAUDE_CODE": {
|
||||
"DEFAULT": { "CLAUDE_CODE": { "dangerously_skip_permissions": true } },
|
||||
"PLAN": { "CLAUDE_CODE": { "plan": true } },
|
||||
"ROUTER": { "CLAUDE_CODE": { "claude_code_router": true, "dangerously_skip_permissions": true } }
|
||||
},
|
||||
"GEMINI": {
|
||||
"DEFAULT": { "GEMINI": { "model": "default", "yolo": true } },
|
||||
"FLASH": { "GEMINI": { "model": "flash", "yolo": true } }
|
||||
},
|
||||
"CODEX": {
|
||||
"DEFAULT": { "CODEX": { "sandbox": "danger-full-access" } },
|
||||
"HIGH": { "CODEX": { "sandbox": "danger-full-access", "model_reasoning_effort": "high" } }
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Notes:
|
||||
|
||||
- Variant names are case‑insensitive and normalized to SCREAMING_SNAKE_CASE.
|
||||
- `DEFAULT` is reserved and always present; you can add more variants (e.g., `PLAN`, `FLASH`).
|
||||
- You can't remove built‑in executors or their built‑in variants, but you can override their values or add new variants.
|
||||
|
||||
## Per‑Agent Options (quick reference)
|
||||
|
||||
- CLAUDE_CODE
|
||||
- `plan: boolean` – enable planning mode
|
||||
- `claude_code_router: boolean` – route across multiple Claude Code instances
|
||||
- `dangerously_skip_permissions: boolean` – skip permission prompts (unsafe)
|
||||
- Docs: https://docs.anthropic.com/en/docs/claude-code/cli-reference#cli-flags
|
||||
- GEMINI
|
||||
- `model: "default" | "flash"`
|
||||
- `yolo: boolean` – run without confirmations
|
||||
- Docs: https://google-gemini.github.io/gemini-cli/
|
||||
- AMP
|
||||
- `dangerously_allow_all: boolean` – allow all actions (unsafe)
|
||||
- Docs: https://ampcode.com/manual#cli
|
||||
- CODEX
|
||||
- `sandbox: "read-only" | "workspace-write" | "danger-full-access"`
|
||||
- `approval: "untrusted" | "on-failure" | "on-request" | "never"`
|
||||
- `oss: boolean`, `model: string`, `model_reasoning_effort: "low" | "medium" | "high"`, `model_reasoning_summary: "auto" | "concise" | "detailed" | "none"`
|
||||
- Docs: https://github.com/openai/codex
|
||||
- CURSOR
|
||||
- `force: boolean`, `model: string`
|
||||
- Docs: https://docs.cursor.com/en/cli/reference/parameters
|
||||
- OPENCODE
|
||||
- `model: string`, `agent: string`
|
||||
- Docs: https://opencode.ai/docs/cli/#flags-1
|
||||
- QWEN_CODE
|
||||
- `yolo: boolean`
|
||||
- Docs: https://qwenlm.github.io/qwen-code-docs/en/cli/index
|
||||
|
||||
Common options supported by several agents:
|
||||
|
||||
- `append_prompt: string | null` – text appended to the system/prompt
|
||||
- `base_command_override: string | null` – override the underlying CLI command
|
||||
- `additional_params: string[] | null` – extra CLI args
|
||||
|
||||
Use these carefully; "dangerously_…" flags bypass confirmations and can perform destructive actions.
|
||||
|
||||
## Selecting Defaults vs. Per‑Attempt
|
||||
|
||||
- Default: Set under Settings → General → "Default Agent Configuration."
|
||||
- Per Attempt: Use the create attempt dialog to pick a different agent/variant for that run.
|
||||
|
||||
## MCP Servers
|
||||
|
||||
MCP (Model Context Protocol) servers are configured per agent under Settings → MCP Servers. This is separate from profiles but complements them. See the [MCP Support](/docs/user-guide/vibe-kanban-mcp-server) guide.
|
||||
@@ -1,31 +0,0 @@
|
||||
# Creating Projects
|
||||
|
||||
Before you can create tasks and execute coding agents, you must create a project.
|
||||
|
||||

|
||||
|
||||
Each project represents a git repo and can be configured with its own setup and dev server scripts.
|
||||
|
||||
## Git
|
||||
|
||||
You can either specify an existing Git repo, or Vibe Kanban will create a blank one for you if you choose the "Create new project" option.
|
||||
|
||||
## Setup Scripts
|
||||
|
||||
Setup scripts will be run before the coding agent is executed. This is useful for installing dependencies, for example you might run `npm install` or `cargo build`. This will save you time as your agent won't need to figure out that these commands haven't already been run.
|
||||
|
||||
_Note, each time a coding agent is executed it runs in a [git worktree](https://git-scm.com/docs/git-worktree) which is unlikely to contain your dependencies, configs, .env etc..._
|
||||
|
||||
## Dev Server Scripts
|
||||
|
||||
The dev server script is run whenever you press the "run dev server" button. It's useful for quickly reviewing work after a coding agent has run.
|
||||
|
||||
At the moment only one dev server can be running for each project, so if you start one it will kill any that are already running.
|
||||
|
||||
## Cleanup Scripts
|
||||
|
||||
Cleanup scripts run after a coding agent finishes. You can use these to tidy up the workspace, remove temporary files, or perform any post-execution cleanup. For example, you might run:
|
||||
|
||||
```bash
|
||||
npm run clean
|
||||
```
|
||||
@@ -1,40 +0,0 @@
|
||||
# Task Attempts
|
||||
|
||||
Task attempts represent one run of a coding agent against a task. Any follow up questions in the same coding agent session will be attached to the same task attempt.
|
||||
|
||||
## Running Setup Scripts
|
||||
|
||||

|
||||
|
||||
When you start a task attempt, if specified in the project settings, the setup script is run automatically.
|
||||
|
||||
## Running Coding Agents
|
||||
|
||||

|
||||
|
||||
After any setup scripts have run, the coding agent is executed with your task title and description in the prompt. The agent's logs are streamed back to the UI in real time.
|
||||
|
||||
### Profiles & Variants
|
||||
|
||||
Before starting, select an agent profile (agent) and, if available, a variant. Profiles and variants let you quickly switch between different configurations for the same agent (for example a planning-focused variant). You can manage these under Settings → Agents. See [Agent Profiles & Variants](/docs/user-guide/agent-configurations) for details.
|
||||
|
||||
## Follow Up questions
|
||||
|
||||
When the execution has finished, you can ask a follow up question using the box at the bottom of the task attempt dialog.
|
||||
|
||||
## Task Attempt Toolbar
|
||||
|
||||

|
||||
|
||||
You can use the task attempt toolbar to perform useful actions:
|
||||
|
||||
- `Dev Server` - Start a dev server (this will kill any existing dev servers running in this project)
|
||||
- `History` - View any previous attempts at this task
|
||||
- `Rebase` - If enabled, communicates that the task branch is behind its base branch, if clicked will attempt to rebase (will fail on conflict)
|
||||
- `Create PR` - Opens a dialog to create a PR in GitHub
|
||||
- `Merge` - Merges the branch into its base branch
|
||||
- `New Attempt` - Opens the create attempt dialog so you can start over
|
||||
|
||||
## Worktrees
|
||||
|
||||
Under the hood, Vibe Kanban relies on Git worktrees to create isolated environments for each task attempt. These should be considered ephemeral and are automatically cleaned up after each run.
|
||||
@@ -1,23 +0,0 @@
|
||||
# Task Templates
|
||||
|
||||
Task templates let you define reusable task formats that speed up task creation. Templates can be created globally (across all projects) or scoped to individual projects.
|
||||
|
||||
## Global Task Templates
|
||||
|
||||
Global templates are managed in **Global Settings → Task Templates**. This view lets you define templates available in every project.
|
||||
|
||||

|
||||
|
||||
Use the **Add Template** button to create a new global template, and the edit (✏️) or delete (🗑️) icons to modify existing templates.
|
||||
|
||||
## Project Task Templates
|
||||
|
||||
Project templates are scoped to a single project. To manage them, open your project and click the library icon in the project's page to access the Template Library, then select **Manage Templates**.
|
||||
|
||||

|
||||
|
||||
Within this window, use **Add Template**, **Edit** (✏️), and **Remove** (🗑️) controls to manage project‑specific templates.
|
||||
|
||||
## Using Templates
|
||||
|
||||
When creating a task, use the **Use a template** dropdown to pick from your global or project templates. Selecting a template will prefill the task title and description.
|
||||
@@ -1,33 +0,0 @@
|
||||
# Creating Tasks
|
||||
|
||||

|
||||
|
||||
Once you've created a project, you can add tasks by clicking the `Add Task` button in the navigation section of the project kanban page. Creating a task adds it to the project's kanban board, but doesn't automatically start trying to work on the task with a coding agent.
|
||||
|
||||
## Using Templates
|
||||
|
||||

|
||||
|
||||
When adding a new task, you can choose from your global or project templates via the **Use a template** dropdown. Selecting a template will prefill the task title and description based on your chosen template. See [Task Templates](/docs/user-guide/creating-task-templates) for details.
|
||||
|
||||
## Task Attempts
|
||||
|
||||

|
||||
|
||||
To start a coding agent working on a task you'll need to create a task attempt. You can specify the base branch, the agent to use, and (if available) a variant. By default your currently checked out branch and your default agent configuration (from Settings) are selected.
|
||||
|
||||
- Select Profile: pick the agent (e.g., CLAUDE_CODE, GEMINI, CODEX)
|
||||
- Select Variant: if the chosen agent has variants, pick one (e.g., DEFAULT, PLAN)
|
||||
|
||||
_Tip: "Create & Start" adds the task to the board and immediately creates a task attempt using your default agent configuration._
|
||||
|
||||
You can learn more about task attempts on the [Task Attempts](./creating-task-attempts) page.
|
||||
|
||||
## Columns
|
||||
|
||||
Tasks are added to the "To do" column, and can be freely dragged into any column. Dragging a task into a particular column won't trigger any functionality, but the task may move into a different column based on actions that are taken like starting coding agents. These are documented below:
|
||||
|
||||
- Task attempt created: task moves to `In Progress`
|
||||
- Task attempt finished (success or failure): task moves to `In Review`
|
||||
- Task attempt merged: task moves to `Done`
|
||||
- Task attempt PR merged on GitHub: task moves to `Done` (polls GitHub every 60s)
|
||||
@@ -1,53 +0,0 @@
|
||||
# MCP Support
|
||||
|
||||
Vibe Kanban ships with an MCP (Model Context Protocol) server, allowing you to manage projects and tasks from any coding agent, including coding agents started by vibe-kanban itself.
|
||||
|
||||
## Setting Up MCP Integration
|
||||
|
||||
### Option 1: Using the Web Interface
|
||||
|
||||
This works if you're adding the Vibe Kanban MCP server to any [supported coding agent](/docs/supported-coding-agents).
|
||||
|
||||
1. Navigate to the "MCP Servers" page in Vibe Kanban
|
||||
2. Click the `Add Vibe-Kanban MCP` button
|
||||
3. Click the `Save Settings` button
|
||||
|
||||

|
||||
|
||||
### Option 2: Manual Configuration
|
||||
|
||||
You can manually add the MCP server to your coding agent's configuration. Add the following configuration to your agent's MCP servers configuration:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"vibe_kanban": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "vibe-kanban", "--mcp"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Using MCP with Coding Agents
|
||||
|
||||
Once you have the MCP server configured, you can leverage it to streamline your project planning workflow:
|
||||
|
||||
1. **Plan Your Work**: Describe a large feature or project to your coding agent
|
||||
2. **Request Task Creation**: At the end of your task description, simply add "then turn this plan into tasks"
|
||||
3. **Automatic Task Generation**: Your coding agent will use the Vibe Kanban MCP server to automatically create structured tasks in your project
|
||||
|
||||
## Example Usage
|
||||
|
||||
```
|
||||
I need to build a user authentication system with the following features:
|
||||
- User registration with email validation
|
||||
- Login/logout functionality
|
||||
- Password reset capability
|
||||
- Session management
|
||||
- Protected routes
|
||||
|
||||
Then turn this plan into tasks.
|
||||
```
|
||||
|
||||
The coding agent will break this down into individual tasks and add them to your Vibe Kanban project automatically.
|
||||