fullerdev 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +276 -0
- package/bin/setup.js +119 -0
- package/dist/agents/designer.d.ts +6 -0
- package/dist/agents/designer.d.ts.map +1 -0
- package/dist/agents/devops.d.ts +7 -0
- package/dist/agents/devops.d.ts.map +1 -0
- package/dist/agents/explorer.d.ts +7 -0
- package/dist/agents/explorer.d.ts.map +1 -0
- package/dist/agents/fixer.d.ts +6 -0
- package/dist/agents/fixer.d.ts.map +1 -0
- package/dist/agents/librarian.d.ts +6 -0
- package/dist/agents/librarian.d.ts.map +1 -0
- package/dist/agents/oracle.d.ts +6 -0
- package/dist/agents/oracle.d.ts.map +1 -0
- package/dist/agents/orchestrator.d.ts +13 -0
- package/dist/agents/orchestrator.d.ts.map +1 -0
- package/dist/config/defaults.d.ts +14 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/loader.d.ts +54 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/schema.d.ts +603 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/hooks/context-injection.d.ts +25 -0
- package/dist/hooks/context-injection.d.ts.map +1 -0
- package/dist/hooks/devops-integration.d.ts +31 -0
- package/dist/hooks/devops-integration.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +46 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/session-lifecycle.d.ts +15 -0
- package/dist/hooks/session-lifecycle.d.ts.map +1 -0
- package/dist/hooks/todo-continuation.d.ts +17 -0
- package/dist/hooks/todo-continuation.d.ts.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1261 -0
- package/dist/mcp/index.d.ts +31 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/tools/azure/git.d.ts +26 -0
- package/dist/tools/azure/git.d.ts.map +1 -0
- package/dist/tools/azure/index.d.ts +6 -0
- package/dist/tools/azure/index.d.ts.map +1 -0
- package/dist/tools/azure/pipelines.d.ts +18 -0
- package/dist/tools/azure/pipelines.d.ts.map +1 -0
- package/dist/tools/azure/wiki.d.ts +18 -0
- package/dist/tools/azure/wiki.d.ts.map +1 -0
- package/dist/tools/azure/work-items.d.ts +26 -0
- package/dist/tools/azure/work-items.d.ts.map +1 -0
- package/dist/tools/core/index.d.ts +17 -0
- package/dist/tools/core/index.d.ts.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/fullerdev.schema.json +117 -0
- package/package.json +65 -0
- package/src/skills/agent-browser/SKILL.md +31 -0
- package/src/skills/azure-devops/SKILL.md +99 -0
- package/src/skills/frontend-ui-ux/SKILL.md +62 -0
- package/src/skills/gitmaster/SKILL.md +52 -0
- package/src/skills/simplify/SKILL.md +50 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { PluginConfig } from "../config/schema";
|
|
2
|
+
import type { AgentConfig } from "../config/schema";
|
|
3
|
+
/**
|
|
4
|
+
* Built-in MCP server definitions.
|
|
5
|
+
*
|
|
6
|
+
* These MCP servers are registered with OpenCode and can be assigned
|
|
7
|
+
* to agents via their `mcps` configuration array.
|
|
8
|
+
*
|
|
9
|
+
* MCP Types:
|
|
10
|
+
* - Remote HTTP MCPs: External services accessed via HTTP
|
|
11
|
+
* - The agent's mcp permissions control which servers it can call
|
|
12
|
+
*/
|
|
13
|
+
export interface McpDefinition {
|
|
14
|
+
id: string;
|
|
15
|
+
type: "http" | "stdio";
|
|
16
|
+
description: string;
|
|
17
|
+
/** HTTP MCP server URL */
|
|
18
|
+
url?: string;
|
|
19
|
+
/** Environment variables needed by this MCP */
|
|
20
|
+
env?: Record<string, string>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Define all built-in MCP servers.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getBuiltinMcps(config: PluginConfig): McpDefinition[];
|
|
26
|
+
/**
|
|
27
|
+
* Resolve which MCPs an agent should have access to based on config.
|
|
28
|
+
* Handles wildcards (*), exclusions (!name), and explicit lists.
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveAgentMcps(agentConfig: AgentConfig, allMcpIds: string[], defaultList?: string[]): string[];
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;GASG;AAEH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,EAAE,CAmDpE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,GAAE,MAAM,EAAO,GACzB,MAAM,EAAE,CA2BV"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
/**
|
|
3
|
+
* List Git repositories in the project.
|
|
4
|
+
*/
|
|
5
|
+
export declare const GIT_REPOS_TOOL: ToolDefinition;
|
|
6
|
+
/**
|
|
7
|
+
* Get details for a specific Git repository.
|
|
8
|
+
*/
|
|
9
|
+
export declare const GIT_REPO_TOOL: ToolDefinition;
|
|
10
|
+
/**
|
|
11
|
+
* List branches in a repository.
|
|
12
|
+
*/
|
|
13
|
+
export declare const GIT_BRANCHES_TOOL: ToolDefinition;
|
|
14
|
+
/**
|
|
15
|
+
* List or search Pull Requests.
|
|
16
|
+
*/
|
|
17
|
+
export declare const GIT_PRS_TOOL: ToolDefinition;
|
|
18
|
+
/**
|
|
19
|
+
* Create a Pull Request.
|
|
20
|
+
*/
|
|
21
|
+
export declare const GIT_PR_CREATE_TOOL: ToolDefinition;
|
|
22
|
+
/**
|
|
23
|
+
* Export all Azure DevOps Git tools.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createGitTools(): Record<string, ToolDefinition>;
|
|
26
|
+
//# sourceMappingURL=git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/tools/azure/git.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,cAM3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,cAQ1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAU9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,cAiBzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAqB/B,CAAC;AAEH;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAQ/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/azure/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAOlE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
/**
|
|
3
|
+
* List pipelines in the project.
|
|
4
|
+
*/
|
|
5
|
+
export declare const PIPELINES_LIST_TOOL: ToolDefinition;
|
|
6
|
+
/**
|
|
7
|
+
* Get pipeline runs (builds).
|
|
8
|
+
*/
|
|
9
|
+
export declare const PIPELINES_RUNS_TOOL: ToolDefinition;
|
|
10
|
+
/**
|
|
11
|
+
* Trigger a pipeline run.
|
|
12
|
+
*/
|
|
13
|
+
export declare const PIPELINES_TRIGGER_TOOL: ToolDefinition;
|
|
14
|
+
/**
|
|
15
|
+
* Export all Azure DevOps Pipeline tools.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createPipelineTools(): Record<string, ToolDefinition>;
|
|
18
|
+
//# sourceMappingURL=pipelines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../../../src/tools/azure/pipelines.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAShC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAkBhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,cAiBnC,CAAC;AAEH;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAMpE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
/**
|
|
3
|
+
* Search Wiki pages by content.
|
|
4
|
+
*/
|
|
5
|
+
export declare const WIKI_SEARCH_TOOL: ToolDefinition;
|
|
6
|
+
/**
|
|
7
|
+
* Get a Wiki page by path.
|
|
8
|
+
*/
|
|
9
|
+
export declare const WIKI_PAGE_TOOL: ToolDefinition;
|
|
10
|
+
/**
|
|
11
|
+
* Create or update a Wiki page.
|
|
12
|
+
*/
|
|
13
|
+
export declare const WIKI_CREATE_TOOL: ToolDefinition;
|
|
14
|
+
/**
|
|
15
|
+
* Export all Azure DevOps Wiki tools.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createWikiTools(): Record<string, ToolDefinition>;
|
|
18
|
+
//# sourceMappingURL=wiki.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wiki.d.ts","sourceRoot":"","sources":["../../../src/tools/azure/wiki.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAY7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,cAa3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAU7B,CAAC;AAEH;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAMhE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
/**
|
|
3
|
+
* Query Work Items using WIQL (Work Item Query Language).
|
|
4
|
+
*/
|
|
5
|
+
export declare const WORKITEM_QUERY_TOOL: ToolDefinition;
|
|
6
|
+
/**
|
|
7
|
+
* Get a single Work Item by ID with all fields.
|
|
8
|
+
*/
|
|
9
|
+
export declare const WORKITEM_GET_TOOL: ToolDefinition;
|
|
10
|
+
/**
|
|
11
|
+
* Create a new Work Item.
|
|
12
|
+
*/
|
|
13
|
+
export declare const WORKITEM_CREATE_TOOL: ToolDefinition;
|
|
14
|
+
/**
|
|
15
|
+
* Update an existing Work Item.
|
|
16
|
+
*/
|
|
17
|
+
export declare const WORKITEM_UPDATE_TOOL: ToolDefinition;
|
|
18
|
+
/**
|
|
19
|
+
* Link two Work Items.
|
|
20
|
+
*/
|
|
21
|
+
export declare const WORKITEM_LINK_TOOL: ToolDefinition;
|
|
22
|
+
/**
|
|
23
|
+
* Export all Azure DevOps Work Item tools.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createWorkItemTools(): Record<string, ToolDefinition>;
|
|
26
|
+
//# sourceMappingURL=work-items.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-items.d.ts","sourceRoot":"","sources":["../../../src/tools/azure/work-items.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAehC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAY9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAiBjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAkBjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAoB/B,CAAC;AAEH;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAQpE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
/**
|
|
3
|
+
* Core task delegation tool — allows the orchestrator to spawn subagent tasks.
|
|
4
|
+
* This is a placeholder; the actual task delegation is handled via OpenCode's
|
|
5
|
+
* session.prompt API through the orchestrator's workflow.
|
|
6
|
+
*/
|
|
7
|
+
export declare const TASK_TOOL: ToolDefinition;
|
|
8
|
+
/**
|
|
9
|
+
* Web fetch tool — fetches a URL and returns cleaned content.
|
|
10
|
+
* Useful for fetching documentation, articles, and API references.
|
|
11
|
+
*/
|
|
12
|
+
export declare const WEBFETCH_TOOL: ToolDefinition;
|
|
13
|
+
/**
|
|
14
|
+
* Export all core tools for registration in the plugin.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createCoreTools(): Record<string, ToolDefinition>;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/core/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,cAkBtB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,cAiB1B,CAAC;AAEH;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAKhE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
/**
|
|
3
|
+
* Aggregate all plugin tools into a single registry.
|
|
4
|
+
* Registers with OpenCode's tool hook in the plugin entry point.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createAllTools(): Record<string, ToolDefinition>;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAK/D"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "fullerdev",
|
|
4
|
+
"description": "Configuration schema for fullerdev plugin for OpenCode — Azure DevOps-native multi-agent orchestration.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"preset": {
|
|
8
|
+
"description": "Name of the active preset to use for agent model/skill/MCP assignment.",
|
|
9
|
+
"type": "string",
|
|
10
|
+
"default": "opencode-go"
|
|
11
|
+
},
|
|
12
|
+
"presets": {
|
|
13
|
+
"description": "Named collections of agent model/skill/MCP assignments.",
|
|
14
|
+
"type": "object",
|
|
15
|
+
"propertyNames": {
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
"additionalProperties": {
|
|
19
|
+
"type": "object",
|
|
20
|
+
"properties": {
|
|
21
|
+
"orchestrator": { "$ref": "#/$defs/agentConfig" },
|
|
22
|
+
"oracle": { "$ref": "#/$defs/agentConfig" },
|
|
23
|
+
"librarian": { "$ref": "#/$defs/agentConfig" },
|
|
24
|
+
"explorer": { "$ref": "#/$defs/agentConfig" },
|
|
25
|
+
"designer": { "$ref": "#/$defs/agentConfig" },
|
|
26
|
+
"fixer": { "$ref": "#/$defs/agentConfig" },
|
|
27
|
+
"devops": { "$ref": "#/$defs/agentConfig" }
|
|
28
|
+
},
|
|
29
|
+
"required": ["orchestrator", "oracle", "librarian", "explorer", "designer", "fixer", "devops"],
|
|
30
|
+
"additionalProperties": false
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"azureDevOps": {
|
|
34
|
+
"description": "Azure DevOps connection settings.",
|
|
35
|
+
"type": "object",
|
|
36
|
+
"properties": {
|
|
37
|
+
"orgUrl": {
|
|
38
|
+
"description": "Azure DevOps organization URL (e.g., 'https://dev.azure.com/myorg').",
|
|
39
|
+
"type": "string",
|
|
40
|
+
"format": "uri"
|
|
41
|
+
},
|
|
42
|
+
"project": {
|
|
43
|
+
"description": "Default Azure DevOps project name.",
|
|
44
|
+
"type": "string"
|
|
45
|
+
},
|
|
46
|
+
"pat": {
|
|
47
|
+
"description": "Personal Access Token. Supports ${ENV_VAR} syntax for environment variable substitution. Falls back to AZURE_DEVOPS_EXT_PAT env var.",
|
|
48
|
+
"type": "string"
|
|
49
|
+
},
|
|
50
|
+
"defaultAreaPath": {
|
|
51
|
+
"description": "Default Area Path for work items.",
|
|
52
|
+
"type": "string"
|
|
53
|
+
},
|
|
54
|
+
"defaultIterationPath": {
|
|
55
|
+
"description": "Default Iteration Path for work items.",
|
|
56
|
+
"type": "string"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"required": ["orgUrl"],
|
|
60
|
+
"additionalProperties": false
|
|
61
|
+
},
|
|
62
|
+
"disabledMcps": {
|
|
63
|
+
"description": "Globally disabled MCP server IDs.",
|
|
64
|
+
"type": "array",
|
|
65
|
+
"items": { "type": "string" },
|
|
66
|
+
"default": []
|
|
67
|
+
},
|
|
68
|
+
"disabledHooks": {
|
|
69
|
+
"description": "Globally disabled hook IDs.",
|
|
70
|
+
"type": "array",
|
|
71
|
+
"items": { "type": "string" },
|
|
72
|
+
"default": []
|
|
73
|
+
},
|
|
74
|
+
"disabledSkills": {
|
|
75
|
+
"description": "Globally disabled skill IDs.",
|
|
76
|
+
"type": "array",
|
|
77
|
+
"items": { "type": "string" },
|
|
78
|
+
"default": []
|
|
79
|
+
},
|
|
80
|
+
"disabledAgents": {
|
|
81
|
+
"description": "Globally disabled agent names. Disabled agents are not instantiated and cannot be delegated to.",
|
|
82
|
+
"type": "array",
|
|
83
|
+
"items": { "type": "string" },
|
|
84
|
+
"default": []
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"required": ["preset"],
|
|
88
|
+
"additionalProperties": false,
|
|
89
|
+
"$defs": {
|
|
90
|
+
"agentConfig": {
|
|
91
|
+
"type": "object",
|
|
92
|
+
"properties": {
|
|
93
|
+
"model": {
|
|
94
|
+
"description": "Provider/model ID (e.g., 'opencode-go/deepseek-v4-pro').",
|
|
95
|
+
"type": "string"
|
|
96
|
+
},
|
|
97
|
+
"variant": {
|
|
98
|
+
"description": "Thinking/reasoning effort variant.",
|
|
99
|
+
"type": "string",
|
|
100
|
+
"enum": ["low", "medium", "high", "max"]
|
|
101
|
+
},
|
|
102
|
+
"skills": {
|
|
103
|
+
"description": "Skills assigned to this agent. Use '*' for all, '!name' to exclude.",
|
|
104
|
+
"type": "array",
|
|
105
|
+
"items": { "type": "string" }
|
|
106
|
+
},
|
|
107
|
+
"mcps": {
|
|
108
|
+
"description": "MCP servers available to this agent. Use '*' for all, '!name' to exclude.",
|
|
109
|
+
"type": "array",
|
|
110
|
+
"items": { "type": "string" }
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"required": ["model"],
|
|
114
|
+
"additionalProperties": false
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fullerdev",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Opinionated OpenCode plugin for multi-agent orchestration. Specialized subagents, built-in MCPs, skills, hooks, tools — tuned for Azure DevOps workflows (Work Items, Git, Wiki, Pipelines).",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Arthur",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
10
|
+
"bin": {
|
|
11
|
+
"fullerdev": "./bin/setup.js"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist/",
|
|
15
|
+
"src/skills/",
|
|
16
|
+
"bin/",
|
|
17
|
+
"fullerdev.schema.json",
|
|
18
|
+
"README.md",
|
|
19
|
+
"LICENSE"
|
|
20
|
+
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "bun build src/index.ts --outdir dist --target node --external @opencode-ai/plugin --external azure-devops-node-api --external zod && bun run build:declarations",
|
|
23
|
+
"build:declarations": "tsc -p tsconfig.build.json",
|
|
24
|
+
"dev": "bun build src/index.ts --outdir dist --target node --external @opencode-ai/plugin --external azure-devops-node-api --external zod --watch",
|
|
25
|
+
"typecheck": "tsc --noEmit",
|
|
26
|
+
"lint": "echo 'no linter configured yet'",
|
|
27
|
+
"check:ci": "bun run typecheck && bun run build",
|
|
28
|
+
"prepare": "bun run build",
|
|
29
|
+
"prepublishOnly": "bun run build",
|
|
30
|
+
"release:patch": "bun version patch && git push --follow-tags && bun publish",
|
|
31
|
+
"release:minor": "bun version minor && git push --follow-tags && bun publish",
|
|
32
|
+
"release:major": "bun version major && git push --follow-tags && bun publish"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@opencode-ai/plugin": "^1.0.85",
|
|
36
|
+
"azure-devops-node-api": "^14.0.0",
|
|
37
|
+
"zod": "^3.23.0"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@types/node": "^20.11.0",
|
|
41
|
+
"bun-types": "latest",
|
|
42
|
+
"typescript": "^5.4.0"
|
|
43
|
+
},
|
|
44
|
+
"keywords": [
|
|
45
|
+
"opencode",
|
|
46
|
+
"opencode-plugin",
|
|
47
|
+
"fullerdev",
|
|
48
|
+
"multi-agent",
|
|
49
|
+
"orchestration",
|
|
50
|
+
"subagents",
|
|
51
|
+
"azure-devops",
|
|
52
|
+
"devops"
|
|
53
|
+
],
|
|
54
|
+
"repository": {
|
|
55
|
+
"type": "git",
|
|
56
|
+
"url": "https://github.com/ao-barbosa/fullerdev"
|
|
57
|
+
},
|
|
58
|
+
"bugs": {
|
|
59
|
+
"url": "https://github.com/ao-barbosa/fullerdev/issues"
|
|
60
|
+
},
|
|
61
|
+
"homepage": "https://github.com/ao-barbosa/fullerdev#readme",
|
|
62
|
+
"engines": {
|
|
63
|
+
"bun": ">=1.3.0"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Agent Browser
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
High-performance browser automation skill for visual verification, web testing, and live documentation research. Allows agents to browse the web, interact with page elements, take screenshots, and verify visual state.
|
|
5
|
+
|
|
6
|
+
## When to Use
|
|
7
|
+
- Visual verification of implemented UI
|
|
8
|
+
- End-to-end testing of web applications
|
|
9
|
+
- Taking screenshots for design review
|
|
10
|
+
- Researching live documentation
|
|
11
|
+
- Interacting with web-based tools and dashboards
|
|
12
|
+
- Testing responsive layouts across viewport sizes
|
|
13
|
+
- Verifying Azure DevOps web interface interactions
|
|
14
|
+
|
|
15
|
+
## Capabilities
|
|
16
|
+
- Page navigation and URL loading
|
|
17
|
+
- Element interaction (click, type, select, hover)
|
|
18
|
+
- Screenshot capture (full page, element, viewport)
|
|
19
|
+
- Visual state verification
|
|
20
|
+
- Form filling and submission
|
|
21
|
+
- Cookie and local storage management
|
|
22
|
+
- Network request monitoring
|
|
23
|
+
- Console log capture
|
|
24
|
+
|
|
25
|
+
## Usage Guidelines
|
|
26
|
+
1. **Start with a clear goal** — know what you're verifying before opening the browser
|
|
27
|
+
2. **Take screenshots at key moments** — before, during, after interactions
|
|
28
|
+
3. **Check responsive breakpoints** — verify at mobile, tablet, and desktop widths
|
|
29
|
+
4. **Test all states** — loading, empty, error, success, and edge cases
|
|
30
|
+
5. **Clean up after** — close browser sessions when done to free resources
|
|
31
|
+
6. **Report findings visually** — include screenshots with annotations
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Azure DevOps
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
Comprehensive Azure DevOps workflow skill. Covers Azure Boards (Work Items), Azure Repos (Git), Azure Wiki, and Azure Pipelines integration. This is the PRIMARY skill for any Azure DevOps interaction — agents should load this skill before performing any ADO operations.
|
|
5
|
+
|
|
6
|
+
## When to Use
|
|
7
|
+
- Creating, updating, or querying Work Items in Azure Boards
|
|
8
|
+
- Managing Git repositories, branches, and PRs in Azure Repos
|
|
9
|
+
- Reading or writing Wiki documentation
|
|
10
|
+
- Checking or triggering Pipeline runs
|
|
11
|
+
- Linking development work to Work Items
|
|
12
|
+
- Any Azure DevOps REST API operation
|
|
13
|
+
- Navigating the Azure DevOps web interface
|
|
14
|
+
|
|
15
|
+
## Core Concepts
|
|
16
|
+
|
|
17
|
+
### Work Item IDs
|
|
18
|
+
- Format: `#12345` for inline references
|
|
19
|
+
- Format: `AB#12345` for automatic linking in commits and PRs
|
|
20
|
+
- The full URL is: `{orgUrl}/{project}/_workitems/edit/{id}`
|
|
21
|
+
|
|
22
|
+
### WIQL (Work Item Query Language)
|
|
23
|
+
- SQL-like syntax for querying Work Items
|
|
24
|
+
- Basic template:
|
|
25
|
+
```sql
|
|
26
|
+
SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]
|
|
27
|
+
FROM WorkItems
|
|
28
|
+
WHERE [System.TeamProject] = 'ProjectName'
|
|
29
|
+
AND [System.State] <> 'Closed'
|
|
30
|
+
ORDER BY [System.ChangedDate] DESC
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Branch Naming Convention
|
|
34
|
+
- `{type}/{workitem-id}-{short-description}`
|
|
35
|
+
- Types: `feature/`, `bugfix/`, `task/`, `hotfix/`
|
|
36
|
+
- Example: `feature/12345-add-priority-filter`
|
|
37
|
+
|
|
38
|
+
### Commit Message Convention
|
|
39
|
+
```
|
|
40
|
+
type(scope): description
|
|
41
|
+
|
|
42
|
+
AB#{workitem-id}
|
|
43
|
+
```
|
|
44
|
+
- Types: feat, fix, refactor, docs, test, chore
|
|
45
|
+
|
|
46
|
+
## Work Item Workflow
|
|
47
|
+
|
|
48
|
+
### Creating a Work Item
|
|
49
|
+
1. Determine the appropriate type (User Story, Task, Bug, Feature, Epic)
|
|
50
|
+
2. Set the title to clearly describe the desired outcome
|
|
51
|
+
3. Write a detailed description with acceptance criteria
|
|
52
|
+
4. Assign to the appropriate team member
|
|
53
|
+
5. Set Area Path and Iteration Path (from project conventions)
|
|
54
|
+
6. Add relevant tags
|
|
55
|
+
|
|
56
|
+
### Updating Work Item Status
|
|
57
|
+
1. When starting work: Set State to "Active" (or "In Progress")
|
|
58
|
+
2. When work is ready for review: Set State to "Resolved" (or "In Review")
|
|
59
|
+
3. When work is approved: Set State to "Closed"
|
|
60
|
+
4. Always add a comment explaining the state change
|
|
61
|
+
|
|
62
|
+
### Querying Work Items
|
|
63
|
+
- Use specific filters to limit results
|
|
64
|
+
- Common queries:
|
|
65
|
+
- My active work items
|
|
66
|
+
- Work items in current sprint/iteration
|
|
67
|
+
- Bugs by severity
|
|
68
|
+
- Work items blocked or at risk
|
|
69
|
+
|
|
70
|
+
## Git Workflow with Azure Repos
|
|
71
|
+
|
|
72
|
+
### Setup
|
|
73
|
+
1. Clone the repository from Azure Repos
|
|
74
|
+
2. Configure git user (matches Azure DevOps identity)
|
|
75
|
+
3. Set up branch policies in Azure Repos (min reviewers, build validation, etc.)
|
|
76
|
+
|
|
77
|
+
### Feature Workflow
|
|
78
|
+
1. Create branch: `feature/{wi-id}-{description}`
|
|
79
|
+
2. Implement changes with AB#-linked commits
|
|
80
|
+
3. Push branch to Azure Repos
|
|
81
|
+
4. Create PR with detailed description and Work Item links
|
|
82
|
+
5. Address review feedback
|
|
83
|
+
6. Complete PR (squash merge or merge commit per team convention)
|
|
84
|
+
7. Update Work Item status
|
|
85
|
+
8. Delete feature branch
|
|
86
|
+
|
|
87
|
+
## Wiki Usage
|
|
88
|
+
- Search Wiki for existing documentation before writing
|
|
89
|
+
- Use consistent page naming: `/Area/Topic/Subtopic`
|
|
90
|
+
- Link Work Items from Wiki pages for traceability
|
|
91
|
+
- Publish architecture decision records (ADRs) to the Wiki
|
|
92
|
+
- Use markdown for all Wiki content
|
|
93
|
+
|
|
94
|
+
## Pipeline Integration
|
|
95
|
+
- Check pipeline status before merging PRs
|
|
96
|
+
- Trigger validation builds when needed
|
|
97
|
+
- Review test results in pipeline runs
|
|
98
|
+
- Use pipeline variables for environment-specific configuration
|
|
99
|
+
- Monitor deployment pipelines for release status
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Frontend UI/UX
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
Designer-turned-developer skill for crafting stunning user interfaces even without design mockups. Emphasizes bold aesthetic direction, distinctive typography, cohesive color palettes, and intentional micro-interactions. This skill teaches agents to approach frontend work with a designer's eye.
|
|
5
|
+
|
|
6
|
+
## When to Use
|
|
7
|
+
- Building new user interfaces
|
|
8
|
+
- Redesigning or refreshing existing UI
|
|
9
|
+
- Creating landing pages or marketing sites
|
|
10
|
+
- Adding animations and transitions
|
|
11
|
+
- Ensuring accessibility (a11y) compliance
|
|
12
|
+
- Reviewing UI/UX quality
|
|
13
|
+
|
|
14
|
+
## Design Philosophy
|
|
15
|
+
|
|
16
|
+
### Intentional over Decorative
|
|
17
|
+
Every visual choice should serve a purpose. Before adding any element, ask: "What does this communicate to the user? What action does it encourage?"
|
|
18
|
+
|
|
19
|
+
### Consistency over Novelty
|
|
20
|
+
Use established patterns. Only innovate when it genuinely improves the user experience. Consistent UI builds user trust and reduces cognitive load.
|
|
21
|
+
|
|
22
|
+
### Mobile-First
|
|
23
|
+
Design for the smallest screen first. Ensure touch targets are adequate (minimum 44px). Test layout at 320px, 768px, 1024px, and 1440px.
|
|
24
|
+
|
|
25
|
+
### Accessibility is Non-Negotiable
|
|
26
|
+
- WCAG 2.1 AA minimum
|
|
27
|
+
- Proper heading hierarchy (h1 → h2 → h3)
|
|
28
|
+
- Sufficient color contrast (4.5:1 for text, 3:1 for large text)
|
|
29
|
+
- Keyboard navigation support
|
|
30
|
+
- Screen reader-friendly ARIA labels
|
|
31
|
+
- Focus indicators for all interactive elements
|
|
32
|
+
|
|
33
|
+
## Visual System
|
|
34
|
+
|
|
35
|
+
### Color
|
|
36
|
+
- Define a cohesive palette: primary, secondary, accent, neutral, semantic (success, warning, error, info)
|
|
37
|
+
- Use CSS custom properties for theming
|
|
38
|
+
- Dark mode support via `prefers-color-scheme` media query or toggle
|
|
39
|
+
|
|
40
|
+
### Typography
|
|
41
|
+
- Choose 1-2 font families maximum
|
|
42
|
+
- Define a clear type scale (e.g., 12px, 14px, 16px, 20px, 24px, 32px, 48px)
|
|
43
|
+
- Use relative units (rem/em) for accessibility
|
|
44
|
+
- Line-height: 1.5 for body text, 1.2 for headings
|
|
45
|
+
|
|
46
|
+
### Spacing
|
|
47
|
+
- Use a consistent spacing scale (4px base: 4, 8, 12, 16, 24, 32, 48, 64, 96)
|
|
48
|
+
- Spacing should relate elements: closer = related, further = separate
|
|
49
|
+
|
|
50
|
+
### States
|
|
51
|
+
Always implement: default, hover, focus, active, disabled, loading, empty, error, success
|
|
52
|
+
|
|
53
|
+
## Implementation Checklist
|
|
54
|
+
- [ ] Responsive at 320px, 768px, 1024px, 1440px
|
|
55
|
+
- [ ] All interactive elements have focus styles
|
|
56
|
+
- [ ] Color contrast passes WCAG AA
|
|
57
|
+
- [ ] Semantic HTML used appropriately
|
|
58
|
+
- [ ] Loading and empty states handled
|
|
59
|
+
- [ ] Error states shown gracefully
|
|
60
|
+
- [ ] Typography scale is consistent
|
|
61
|
+
- [ ] Spacing system is applied uniformly
|
|
62
|
+
- [ ] Animations respect `prefers-reduced-motion`
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Git Master
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
Comprehensive Git workflow skill for Azure DevOps-native development. Handles atomic commits with automatic Work Item linking, rebase/squash workflows, branch management with Azure Repos conventions, and history archaeology.
|
|
5
|
+
|
|
6
|
+
## When to Use
|
|
7
|
+
- Committing code (ALWAYS use this skill)
|
|
8
|
+
- Rebasing or squashing commits
|
|
9
|
+
- Creating branches linked to Work Items
|
|
10
|
+
- Investigating git history (blame, bisect, log -S)
|
|
11
|
+
- Preparing PRs for Azure Repos
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
### Commit
|
|
16
|
+
1. Stage changes atomically — one logical change per commit
|
|
17
|
+
2. Write descriptive commit messages following conventional commits format
|
|
18
|
+
3. **Always include AB#{WorkItemId}** in commit messages for Azure DevOps linking
|
|
19
|
+
4. Format: `type(scope): description\n\nAB#{id}`
|
|
20
|
+
|
|
21
|
+
Example:
|
|
22
|
+
```
|
|
23
|
+
feat(work-items): add priority field to work item form
|
|
24
|
+
|
|
25
|
+
Closes #12345
|
|
26
|
+
AB#12345
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Branch Management
|
|
30
|
+
- Branch naming: `{type}/{workitem-id}-{short-description}`
|
|
31
|
+
- Types: `feature/`, `bugfix/`, `task/`, `hotfix/`
|
|
32
|
+
- Example: `feature/12345-add-priority-filter`
|
|
33
|
+
- Always branch from the latest `main` (or configured default branch)
|
|
34
|
+
- Delete local branches after PR merge
|
|
35
|
+
|
|
36
|
+
### Pull Requests
|
|
37
|
+
- Always link to the relevant Work Item(s)
|
|
38
|
+
- Use PR templates from the repo when available
|
|
39
|
+
- Include AB# references in PR description for auto-linking
|
|
40
|
+
- Request reviews from appropriate team members
|
|
41
|
+
|
|
42
|
+
### Rebase/Squash
|
|
43
|
+
- Rebase feature branches onto main before PR
|
|
44
|
+
- Squash fixup commits before PR review
|
|
45
|
+
- Use interactive rebase for cleaning up commit history
|
|
46
|
+
- Never rebase shared branches (main, develop)
|
|
47
|
+
|
|
48
|
+
### History Search
|
|
49
|
+
- `git blame` to find who last changed a line
|
|
50
|
+
- `git log -S "pattern"` to search for code additions/deletions
|
|
51
|
+
- `git bisect` to find which commit introduced a bug
|
|
52
|
+
- `git log --grep="AB#12345"` to find commits linked to a Work Item
|