@jstn-sdk/rcs 0.1.7 → 0.1.8
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/README.md +64 -1
- package/dist/agents/definitions.d.ts +6 -0
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +14 -0
- package/dist/agents/definitions.js.map +1 -1
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +6 -2
- package/dist/config/generator.js.map +1 -1
- package/dist/config/models.d.ts +37 -0
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +121 -3
- package/dist/config/models.js.map +1 -1
- package/dist/config/roblox-reference-mcp.d.ts +16 -0
- package/dist/config/roblox-reference-mcp.d.ts.map +1 -0
- package/dist/config/roblox-reference-mcp.js +37 -0
- package/dist/config/roblox-reference-mcp.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/platform-targets/reader.d.ts +3 -0
- package/dist/platform-targets/reader.d.ts.map +1 -0
- package/dist/platform-targets/reader.js +31 -0
- package/dist/platform-targets/reader.js.map +1 -0
- package/dist/platform-targets/schema.d.ts +22 -0
- package/dist/platform-targets/schema.d.ts.map +1 -0
- package/dist/platform-targets/schema.js +88 -0
- package/dist/platform-targets/schema.js.map +1 -0
- package/dist/scripts/publish-github-package.d.ts +3 -0
- package/dist/scripts/publish-github-package.d.ts.map +1 -0
- package/dist/scripts/publish-github-package.js +74 -0
- package/dist/scripts/publish-github-package.js.map +1 -0
- package/docs/agents.html +1 -0
- package/docs/index.html +13 -0
- package/docs/plugin-bundle-ssot.md +2 -0
- package/docs/readme/README.de.md +27 -0
- package/docs/readme/README.el.md +27 -0
- package/docs/readme/README.es.md +27 -0
- package/docs/readme/README.fr.md +27 -0
- package/docs/readme/README.it.md +27 -0
- package/docs/readme/README.ja.md +27 -0
- package/docs/readme/README.ko.md +27 -0
- package/docs/readme/README.md +2 -1
- package/docs/readme/README.pl.md +27 -0
- package/docs/readme/README.pt.md +27 -0
- package/docs/readme/README.ru.md +27 -0
- package/docs/readme/README.tr.md +27 -0
- package/docs/readme/README.uk.md +27 -0
- package/docs/readme/README.vi.md +27 -0
- package/docs/readme/README.zh-TW.md +27 -0
- package/docs/readme/README.zh.md +27 -0
- package/docs/reference/agentic-platform-compatibility.md +147 -0
- package/docs/reference/llm-provider-abstraction.md +88 -0
- package/docs/reference/multi-agent-compatibility-architecture.md +120 -0
- package/docs/reference/rcs-config-schema-routing.md +3 -0
- package/docs/reference/roblox-mcp-reference-layer.md +75 -0
- package/docs/reference/roblox-pre-action-protocol.md +15 -3
- package/docs/release-notes-v0.1.8.md +24 -0
- package/docs/wiki/Contributing.md +45 -0
- package/docs/wiki/Good-First-Issues.md +44 -0
- package/docs/wiki/Home.md +35 -0
- package/docs/wiki/Release-Playbook.md +57 -0
- package/docs/wiki/Roadmap.md +90 -0
- package/package.json +1 -1
- package/plugins/roblox-ai-os-creator-skills/.codex-plugin/plugin.json +1 -1
- package/plugins/roblox-ai-os-creator-skills/docs/reference/roblox-pre-action-protocol.md +15 -3
- package/plugins/roblox-ai-os-creator-skills/skills/ai-slop-cleaner/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/analyze/SKILL.md +6 -9
- package/plugins/roblox-ai-os-creator-skills/skills/ask-claude/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/ask-gemini/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/autoforge/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/autopilot/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/autoresearch/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/blueprint/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/blueprint-loop/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/blueprint-psych/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/blueprint-retention/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/blueprint-social/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/brief/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/brief-audience/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/brief-motivation/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/cancel/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/code-review/SKILL.md +6 -9
- package/plugins/roblox-ai-os-creator-skills/skills/configure-notifications/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/crew/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/deep-interview/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/doctor/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/forge/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/forge-community/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/forge-daily-loop/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/forge-event-loop/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/forge-fomo/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/forge-mastery/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/forge-progression/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/forge-reward-loop/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/forge-status/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/help/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/hud/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/note/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/pipeline/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/plan/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/rcs-setup/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/security-review/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/skill/SKILL.md +38 -40
- package/plugins/roblox-ai-os-creator-skills/skills/team/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/trace/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/ultraqa/SKILL.md +7 -10
- package/plugins/roblox-ai-os-creator-skills/skills/ultrawork/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/visual-forge/SKILL.md +1 -4
- package/plugins/roblox-ai-os-creator-skills/skills/visual-verdict/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/wiki/SKILL.md +0 -3
- package/plugins/roblox-ai-os-creator-skills/skills/worker/SKILL.md +1 -4
- package/skills/ai-slop-cleaner/SKILL.md +0 -3
- package/skills/analyze/SKILL.md +6 -9
- package/skills/ask-claude/SKILL.md +0 -3
- package/skills/ask-gemini/SKILL.md +0 -3
- package/skills/autoforge/SKILL.md +0 -3
- package/skills/autopilot/SKILL.md +0 -3
- package/skills/autoresearch/SKILL.md +0 -3
- package/skills/blueprint/SKILL.md +0 -3
- package/skills/blueprint-loop/SKILL.md +0 -3
- package/skills/blueprint-psych/SKILL.md +0 -3
- package/skills/blueprint-retention/SKILL.md +0 -3
- package/skills/blueprint-social/SKILL.md +0 -3
- package/skills/brief/SKILL.md +0 -3
- package/skills/brief-audience/SKILL.md +0 -3
- package/skills/brief-motivation/SKILL.md +0 -3
- package/skills/build-fix/SKILL.md +2 -4
- package/skills/cancel/SKILL.md +0 -3
- package/skills/code-review/SKILL.md +6 -9
- package/skills/configure-notifications/SKILL.md +0 -3
- package/skills/crew/SKILL.md +0 -3
- package/skills/deep-interview/SKILL.md +0 -3
- package/skills/deepsearch/SKILL.md +0 -3
- package/skills/doctor/SKILL.md +0 -3
- package/skills/ecomode/SKILL.md +0 -3
- package/skills/forge/SKILL.md +0 -3
- package/skills/forge-community/SKILL.md +0 -3
- package/skills/forge-daily-loop/SKILL.md +0 -3
- package/skills/forge-event-loop/SKILL.md +0 -3
- package/skills/forge-fomo/SKILL.md +0 -3
- package/skills/forge-init/SKILL.md +0 -3
- package/skills/forge-mastery/SKILL.md +0 -3
- package/skills/forge-progression/SKILL.md +0 -3
- package/skills/forge-reward-loop/SKILL.md +0 -3
- package/skills/forge-status/SKILL.md +0 -3
- package/skills/git-master/SKILL.md +0 -3
- package/skills/help/SKILL.md +0 -3
- package/skills/hud/SKILL.md +0 -3
- package/skills/note/SKILL.md +0 -3
- package/skills/pipeline/SKILL.md +0 -3
- package/skills/plan/SKILL.md +0 -3
- package/skills/rcs-setup/SKILL.md +0 -3
- package/skills/review/SKILL.md +0 -3
- package/skills/security-review/SKILL.md +0 -3
- package/skills/skill/SKILL.md +38 -40
- package/skills/swarm/SKILL.md +1 -4
- package/skills/tdd/SKILL.md +0 -3
- package/skills/team/SKILL.md +0 -3
- package/skills/trace/SKILL.md +0 -3
- package/skills/ultraqa/SKILL.md +7 -10
- package/skills/ultrawork/SKILL.md +0 -3
- package/skills/visual-forge/SKILL.md +1 -4
- package/skills/visual-verdict/SKILL.md +0 -3
- package/skills/web-clone/SKILL.md +0 -3
- package/skills/wiki/SKILL.md +0 -3
- package/skills/worker/SKILL.md +1 -4
- package/src/scripts/publish-github-package.ts +94 -0
- package/templates/roblox/llm-provider-routing.json +42 -0
- package/templates/roblox/reference-sources.md +33 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Agentic Platform Compatibility
|
|
2
|
+
|
|
3
|
+
RCS should be portable across agentic AI platforms, but **portability does not mean pretending every platform has the same runtime model as Codex**.
|
|
4
|
+
|
|
5
|
+
The correct goal is:
|
|
6
|
+
|
|
7
|
+
- one canonical authoring surface
|
|
8
|
+
- one compatibility contract
|
|
9
|
+
- multiple platform-specific delivery lanes
|
|
10
|
+
|
|
11
|
+
That contract is now materialized in:
|
|
12
|
+
|
|
13
|
+
- [`src/platform-targets/manifest.json`](../../src/platform-targets/manifest.json)
|
|
14
|
+
- [`src/platform-targets/schema.ts`](../../src/platform-targets/schema.ts)
|
|
15
|
+
- [`src/platform-targets/reader.ts`](../../src/platform-targets/reader.ts)
|
|
16
|
+
|
|
17
|
+
## What stays canonical
|
|
18
|
+
|
|
19
|
+
These are the source-of-truth surfaces inside this repo:
|
|
20
|
+
|
|
21
|
+
- `skills/` — canonical workflow skills
|
|
22
|
+
- `prompts/` — canonical prompt guidance for setup-owned native-agent generation
|
|
23
|
+
- `src/agents/definitions.ts` — canonical native-agent role registry
|
|
24
|
+
- `src/catalog/manifest.json` — canonical installability and alias/merged policy
|
|
25
|
+
- `templates/AGENTS.md` — canonical orchestration brain template
|
|
26
|
+
- `src/config/rcs-first-party-mcp.ts` and related config generators — canonical first-party MCP metadata
|
|
27
|
+
|
|
28
|
+
Everything else should be an **emitted delivery surface** or an **adapter surface**.
|
|
29
|
+
|
|
30
|
+
## Delivery lanes
|
|
31
|
+
|
|
32
|
+
### 1. Codex native setup lane
|
|
33
|
+
|
|
34
|
+
This is the deepest-supported lane today.
|
|
35
|
+
|
|
36
|
+
It includes:
|
|
37
|
+
|
|
38
|
+
- generated native agents under `.codex/agents/`
|
|
39
|
+
- installed prompts under `.codex/prompts/`
|
|
40
|
+
- installed skills under the selected setup scope
|
|
41
|
+
- setup-owned runtime hooks
|
|
42
|
+
- `.rcs/` runtime state
|
|
43
|
+
|
|
44
|
+
This lane is driven by `rcs setup`.
|
|
45
|
+
|
|
46
|
+
### 2. Codex plugin + marketplace lane
|
|
47
|
+
|
|
48
|
+
This is the installable bundle lane today.
|
|
49
|
+
|
|
50
|
+
It includes:
|
|
51
|
+
|
|
52
|
+
- plugin bundle under `plugins/roblox-ai-os-creator-skills/`
|
|
53
|
+
- marketplace metadata in `.agents/plugins/marketplace.json`
|
|
54
|
+
- plugin-scoped skill discovery
|
|
55
|
+
- plugin-scoped MCP/app companion metadata
|
|
56
|
+
|
|
57
|
+
Important boundary:
|
|
58
|
+
|
|
59
|
+
- the plugin bundle is **not** the full runtime setup
|
|
60
|
+
- setup-owned prompts, native-agent TOMLs, and runtime hooks remain outside the plugin manifest
|
|
61
|
+
|
|
62
|
+
### 3. Adapter lane for external platforms
|
|
63
|
+
|
|
64
|
+
This is how non-Codex platforms should be integrated.
|
|
65
|
+
|
|
66
|
+
Examples:
|
|
67
|
+
|
|
68
|
+
- OpenClaw
|
|
69
|
+
- Hermes
|
|
70
|
+
- future Claude-oriented or marketplace-oriented bridges
|
|
71
|
+
|
|
72
|
+
The rule is:
|
|
73
|
+
|
|
74
|
+
- do not fork canonical skill/prompt/runtime truth into platform-specific ad hoc copies
|
|
75
|
+
- add a platform adapter or delivery contract that maps canonical RCS surfaces into the target platform’s format
|
|
76
|
+
|
|
77
|
+
## What “compatible with any agentic AI platform” should mean
|
|
78
|
+
|
|
79
|
+
It should mean:
|
|
80
|
+
|
|
81
|
+
- RCS authors once from canonical source surfaces
|
|
82
|
+
- RCS can emit or adapt those surfaces for a target platform
|
|
83
|
+
- each target gets the format it actually supports
|
|
84
|
+
|
|
85
|
+
It should **not** mean:
|
|
86
|
+
|
|
87
|
+
- every platform receives the exact same file layout
|
|
88
|
+
- every platform gets Codex-only runtime semantics
|
|
89
|
+
- plugin, marketplace, hooks, prompts, and native agents all collapse into one fake universal package
|
|
90
|
+
|
|
91
|
+
## Platform model
|
|
92
|
+
|
|
93
|
+
Use this mental model:
|
|
94
|
+
|
|
95
|
+
- **Canonical source layer**: skills, prompts, registry, catalog, templates
|
|
96
|
+
- **Delivery layer**: Codex native setup, Codex plugin bundle, marketplace package
|
|
97
|
+
- **Adapter layer**: target-specific bridge for platforms with different runtime rules
|
|
98
|
+
|
|
99
|
+
## Claude-style example
|
|
100
|
+
|
|
101
|
+
For a Claude-like platform, the right question is not:
|
|
102
|
+
|
|
103
|
+
- “Can we copy the Codex plugin/runtime shape into `.claude/`?”
|
|
104
|
+
|
|
105
|
+
The right question is:
|
|
106
|
+
|
|
107
|
+
- “Which canonical RCS surfaces should be delivered natively, and which must stay adapter-owned because the target platform does not share Codex runtime semantics?”
|
|
108
|
+
|
|
109
|
+
That usually means:
|
|
110
|
+
|
|
111
|
+
- skills may be portable
|
|
112
|
+
- selected guidance may be portable
|
|
113
|
+
- marketplace/package metadata may be portable
|
|
114
|
+
- setup-owned native agents and runtime hooks are **not** automatically portable one-to-one
|
|
115
|
+
|
|
116
|
+
## Marketplace example
|
|
117
|
+
|
|
118
|
+
For a marketplace-oriented platform, the package should be treated as a delivery artifact:
|
|
119
|
+
|
|
120
|
+
- emitted from canonical repo sources
|
|
121
|
+
- versioned from canonical package/release metadata
|
|
122
|
+
- validated against a platform-specific boundary contract
|
|
123
|
+
|
|
124
|
+
Not as a second source of truth.
|
|
125
|
+
|
|
126
|
+
## Current repo posture
|
|
127
|
+
|
|
128
|
+
Today RCS is strongest in:
|
|
129
|
+
|
|
130
|
+
- Codex native setup
|
|
131
|
+
- Codex plugin/marketplace packaging
|
|
132
|
+
- adapter-style compatibility lanes such as OpenClaw/Hermes
|
|
133
|
+
|
|
134
|
+
It is **not yet** a finished universal emitter for every external agent platform.
|
|
135
|
+
|
|
136
|
+
That is intentional. The repo should grow by adding **clean adapters/delivery contracts**, not by duplicating the product into platform-specific silos.
|
|
137
|
+
|
|
138
|
+
## Concrete target lanes
|
|
139
|
+
|
|
140
|
+
The current platform target manifest defines these concrete lanes:
|
|
141
|
+
|
|
142
|
+
- `codex-native`
|
|
143
|
+
- `codex-plugin`
|
|
144
|
+
- `claude-like`
|
|
145
|
+
- `marketplace-bundle`
|
|
146
|
+
- `adapter-openclaw`
|
|
147
|
+
- `adapter-hermes`
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# LLM Provider Abstraction
|
|
2
|
+
|
|
3
|
+
Status: canonical model- and API-agnostic provider layer for RCS runtime configuration.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
RCS should treat LLM providers as interchangeable components, not permanent dependencies.
|
|
8
|
+
|
|
9
|
+
That means:
|
|
10
|
+
- model routing is separate from provider routing
|
|
11
|
+
- provider configuration is explicit
|
|
12
|
+
- fallback providers can be declared without rewriting core logic
|
|
13
|
+
- OpenAI-compatible gateways, Anthropic-style gateways, or other future providers can be swapped in without redesigning the product surface
|
|
14
|
+
|
|
15
|
+
## Core Principle
|
|
16
|
+
|
|
17
|
+
RCS routes work by:
|
|
18
|
+
1. workflow or role intent
|
|
19
|
+
2. model lane
|
|
20
|
+
3. provider selection
|
|
21
|
+
|
|
22
|
+
The application should not have to change its core logic just because the backing provider changes.
|
|
23
|
+
|
|
24
|
+
## Config Shape
|
|
25
|
+
|
|
26
|
+
`.rcs-config.json` may now include:
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"providers": {
|
|
31
|
+
"openrouter": {
|
|
32
|
+
"base_url": "https://openrouter.ai/api/v1",
|
|
33
|
+
"api_format": "openai-compatible",
|
|
34
|
+
"env_key": "OPENROUTER_API_KEY",
|
|
35
|
+
"capabilities": ["chat", "reasoning"],
|
|
36
|
+
"label": "OpenRouter"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"routing": {
|
|
40
|
+
"default_provider": "openrouter",
|
|
41
|
+
"mode_providers": {
|
|
42
|
+
"forge": "openrouter"
|
|
43
|
+
},
|
|
44
|
+
"fallback_providers": ["openrouter"],
|
|
45
|
+
"mode_fallback_providers": {
|
|
46
|
+
"forge": ["openrouter"]
|
|
47
|
+
},
|
|
48
|
+
"hot_swap": true,
|
|
49
|
+
"failover": true
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## What This Enables
|
|
55
|
+
|
|
56
|
+
- **Provider-agnostic routing** — use one model/provider abstraction without hard-wiring a single vendor into every workflow
|
|
57
|
+
- **OpenAI-compatible gateways** — route through unified proxy formats where useful
|
|
58
|
+
- **Mode-specific provider policies** — for example one provider for `forge`, another for `team`
|
|
59
|
+
- **Fallback chains** — define ordered failover providers for runtime resilience
|
|
60
|
+
- **Hot-swap intent** — document whether provider hot-swapping is considered part of the runtime policy
|
|
61
|
+
|
|
62
|
+
## Important Clarification
|
|
63
|
+
|
|
64
|
+
This layer is about **LLM/model provider routing**.
|
|
65
|
+
|
|
66
|
+
It is **not** the same as:
|
|
67
|
+
- `robloxstudio-mcp` live Studio transport
|
|
68
|
+
- OpenClaw notifications/gateway delivery
|
|
69
|
+
|
|
70
|
+
### OpenClaw
|
|
71
|
+
|
|
72
|
+
OpenClaw is adjacent infrastructure:
|
|
73
|
+
- useful for notifications/gateway automation
|
|
74
|
+
- not the canonical LLM provider abstraction
|
|
75
|
+
- should not be treated as the model-provider routing layer
|
|
76
|
+
|
|
77
|
+
## Current Runtime Hooks
|
|
78
|
+
|
|
79
|
+
Implemented runtime helpers live in:
|
|
80
|
+
- `src/config/models.ts`
|
|
81
|
+
|
|
82
|
+
They now support:
|
|
83
|
+
- provider profile reads
|
|
84
|
+
- default provider resolution
|
|
85
|
+
- mode-specific provider resolution
|
|
86
|
+
- fallback provider lists
|
|
87
|
+
- hot-swap/failover flags
|
|
88
|
+
- normalized active provider connection summaries
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Multi-Agent Compatibility Architecture
|
|
2
|
+
|
|
3
|
+
RCS already ships a real multi-agent compatibility system, but in this repo it is split across **native agent definitions**, **catalog policy**, **native Codex TOML generation**, and **adapter targets**.
|
|
4
|
+
|
|
5
|
+
This document names that architecture explicitly so contributors do not project an external `src/agents.ts` example onto the wrong files.
|
|
6
|
+
|
|
7
|
+
## Canonical files
|
|
8
|
+
|
|
9
|
+
- Native agent registry: [`src/agents/definitions.ts`](../../src/agents/definitions.ts)
|
|
10
|
+
- Native-agent install policy: [`src/agents/policy.ts`](../../src/agents/policy.ts)
|
|
11
|
+
- Native-agent config adapter/generator: [`src/agents/native-config.ts`](../../src/agents/native-config.ts)
|
|
12
|
+
- Public catalog manifest: [`src/catalog/manifest.json`](../../src/catalog/manifest.json)
|
|
13
|
+
- External adapter target contracts: [`src/adapt/contracts.ts`](../../src/adapt/contracts.ts)
|
|
14
|
+
- External adapter target registry: [`src/adapt/registry.ts`](../../src/adapt/registry.ts)
|
|
15
|
+
- CLI native-agent management: [`src/cli/agents.ts`](../../src/cli/agents.ts)
|
|
16
|
+
- Native-agent verification: [`src/scripts/verify-native-agents.ts`](../../src/scripts/verify-native-agents.ts)
|
|
17
|
+
|
|
18
|
+
## Core patterns
|
|
19
|
+
|
|
20
|
+
### Registry pattern
|
|
21
|
+
|
|
22
|
+
RCS uses **two registries**:
|
|
23
|
+
|
|
24
|
+
- `AGENT_DEFINITIONS` in `src/agents/definitions.ts`
|
|
25
|
+
- target descriptors in `src/adapt/registry.ts`
|
|
26
|
+
|
|
27
|
+
Those registries keep agent and adapter metadata centralized instead of scattering role-specific logic through setup, runtime, and verification code.
|
|
28
|
+
|
|
29
|
+
### Adapter pattern
|
|
30
|
+
|
|
31
|
+
RCS does not expose prompt markdown or external target state directly.
|
|
32
|
+
|
|
33
|
+
Instead:
|
|
34
|
+
|
|
35
|
+
- `src/agents/native-config.ts` adapts prompt markdown plus `AgentDefinition` metadata into native Codex TOML files
|
|
36
|
+
- `src/adapt/*` adapts target-specific runtime evidence such as OpenClaw or Hermes into a shared envelope/probe/status contract
|
|
37
|
+
|
|
38
|
+
The rest of the system can therefore consume a stable RCS-owned shape rather than raw target-specific details.
|
|
39
|
+
|
|
40
|
+
### Strategy pattern
|
|
41
|
+
|
|
42
|
+
The compatibility layer applies strategy-like decisions through registry-backed metadata instead of giant conditionals:
|
|
43
|
+
|
|
44
|
+
- `modelClass`, `posture`, and `routingRole` select native-agent instruction overlays and model resolution behavior
|
|
45
|
+
- adapter target descriptors select target-specific capability reports while preserving a shared foundation contract
|
|
46
|
+
- catalog `status` values such as `active`, `internal`, `alias`, and `merged` determine installability and canonical-target behavior
|
|
47
|
+
|
|
48
|
+
### Plugin-style architecture
|
|
49
|
+
|
|
50
|
+
RCS supports extension without rewriting the core native-agent installer:
|
|
51
|
+
|
|
52
|
+
- add or adjust a native role in `AGENT_DEFINITIONS`
|
|
53
|
+
- classify it in `src/catalog/manifest.json`
|
|
54
|
+
- provide the matching prompt asset in `prompts/`
|
|
55
|
+
- let `verify-native-agents` enforce the contract
|
|
56
|
+
|
|
57
|
+
For external targets, add a target contract and registry descriptor under `src/adapt/*` without changing unrelated adapter lanes.
|
|
58
|
+
|
|
59
|
+
## Supporting techniques
|
|
60
|
+
|
|
61
|
+
### Configuration-driven design
|
|
62
|
+
|
|
63
|
+
The compatibility layer is mostly declarative:
|
|
64
|
+
|
|
65
|
+
- agent metadata is data-first in `AGENT_DEFINITIONS`
|
|
66
|
+
- installability and canonical aliases are data-first in `src/catalog/manifest.json`
|
|
67
|
+
- adapter capabilities are data-first in `TARGET_DESCRIPTORS`
|
|
68
|
+
|
|
69
|
+
That keeps policy visible and reviewable.
|
|
70
|
+
|
|
71
|
+
### Facade pattern
|
|
72
|
+
|
|
73
|
+
RCS exposes small facade helpers over the registries instead of forcing consumers to walk raw objects:
|
|
74
|
+
|
|
75
|
+
- `getAgent`
|
|
76
|
+
- `listAgents`
|
|
77
|
+
- `getAgentNames`
|
|
78
|
+
- `getAgentsByCategory`
|
|
79
|
+
- `getAgentsByPosture`
|
|
80
|
+
- `getAgentsByRoutingRole`
|
|
81
|
+
- `getInstallableNativeAgentNames`
|
|
82
|
+
- `listAdaptTargets`
|
|
83
|
+
- `getAdaptTargetDescriptor`
|
|
84
|
+
|
|
85
|
+
### Canonical-boundary pattern
|
|
86
|
+
|
|
87
|
+
RCS keeps ownership boundaries explicit:
|
|
88
|
+
|
|
89
|
+
- prompt markdown is setup-owned source content under `prompts/`
|
|
90
|
+
- generated native Codex agent TOML is emitted under `~/.codex/agents/` or `./.codex/agents/`
|
|
91
|
+
- plugin manifests must **not** claim setup-owned `agents`, `prompts`, or `hooks`
|
|
92
|
+
- adapter writes stay under `.rcs/adapters/<target>/...`
|
|
93
|
+
|
|
94
|
+
This avoids duplication and prevents plugin/runtime surfaces from silently fighting over the same artifacts.
|
|
95
|
+
|
|
96
|
+
## What this architecture is not
|
|
97
|
+
|
|
98
|
+
This repo does **not** currently use the external example's exact shape:
|
|
99
|
+
|
|
100
|
+
- no monolithic `src/agents.ts`
|
|
101
|
+
- no `.agents/skills` universal-directory + symlink installer as the core native-agent mechanism
|
|
102
|
+
- no per-agent `detectInstalled()` registry for dozens of third-party coding tools as the main compatibility layer
|
|
103
|
+
|
|
104
|
+
RCS instead centers on:
|
|
105
|
+
|
|
106
|
+
- native Codex agent-role generation
|
|
107
|
+
- catalog-governed canonical/alias boundaries
|
|
108
|
+
- adapter-target compatibility lanes such as OpenClaw and Hermes
|
|
109
|
+
|
|
110
|
+
## Verification contract
|
|
111
|
+
|
|
112
|
+
The architecture is guarded by tests and verification surfaces:
|
|
113
|
+
|
|
114
|
+
- [`src/agents/__tests__/definitions.test.ts`](../../src/agents/__tests__/definitions.test.ts)
|
|
115
|
+
- [`src/agents/__tests__/native-config.test.ts`](../../src/agents/__tests__/native-config.test.ts)
|
|
116
|
+
- [`src/adapt/__tests__/foundation.test.ts`](../../src/adapt/__tests__/foundation.test.ts)
|
|
117
|
+
- [`src/scripts/__tests__/verify-native-agents.test.ts`](../../src/scripts/__tests__/verify-native-agents.test.ts)
|
|
118
|
+
- [`src/verification/__tests__/multi-agent-compatibility-architecture.test.ts`](../../src/verification/__tests__/multi-agent-compatibility-architecture.test.ts)
|
|
119
|
+
|
|
120
|
+
If you change the compatibility architecture, update the doc and the contract tests together.
|
|
@@ -29,6 +29,8 @@ Current code recognizes these top-level `.rcs-config.json` keys:
|
|
|
29
29
|
| --- | --- | --- |
|
|
30
30
|
| `env` | Object of non-empty string values | Fallback environment values for model routing and helper launch paths. Model-related supported keys are listed below. |
|
|
31
31
|
| `models` | Object of non-empty string values | Mode defaults and low-complexity model aliases. Supported model-routing keys are listed below. |
|
|
32
|
+
| `providers` | Object | Provider profiles for model/API-agnostic routing (`base_url`, `api_format`, `env_key`, `capabilities`, `label`). |
|
|
33
|
+
| `routing` | Object | Default provider, mode-specific provider mapping, fallback provider chains, and hot-swap/failover flags. |
|
|
32
34
|
| `notifications` | Object | Notification transports, profiles, templates, cooldowns, replies, and OpenClaw/custom aliases. See the notification summary below and the OpenClaw guide for full examples. |
|
|
33
35
|
| `stopHookCallbacks` | Legacy object | Backward-compatible legacy session-end notification config for `telegram` and `discord`; prefer `notifications`. |
|
|
34
36
|
| `promptRouting` | `{ "triage": { "enabled": boolean } }` | Enables/disables advisory triage prompt routing. Missing key defaults to enabled; malformed shape fails closed to disabled. |
|
|
@@ -251,6 +253,7 @@ If behavior does not match your config, first confirm whether you are in user or
|
|
|
251
253
|
## Related docs and source surfaces
|
|
252
254
|
|
|
253
255
|
- Notification and OpenClaw config: [`docs/openclaw-integration.md`](../openclaw-integration.md)
|
|
256
|
+
- Provider abstraction: [`docs/reference/llm-provider-abstraction.md`](./llm-provider-abstraction.md)
|
|
254
257
|
- Project wiki config: [`docs/reference/project-wiki.md`](./project-wiki.md)
|
|
255
258
|
- Model routing source: `src/config/models.ts`
|
|
256
259
|
- Notification config source: `src/notifications/config.ts`, `src/notifications/types.ts`, `src/notifications/hook-config-types.ts`
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Roblox MCP Reference Layer
|
|
2
|
+
|
|
3
|
+
Status: canonical external reference-source policy for Roblox-facing RCS work.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
RCS has two different MCP/reference layers:
|
|
8
|
+
|
|
9
|
+
1. **First-party RCS MCP servers**
|
|
10
|
+
- local stdio servers for state, memory, code-intel, trace, and wiki
|
|
11
|
+
2. **External Roblox reference sources**
|
|
12
|
+
- official Creator Docs
|
|
13
|
+
- serverless `gitmcp.io` mirrors
|
|
14
|
+
- Roblox-specific skill repositories
|
|
15
|
+
- implementation corpora
|
|
16
|
+
|
|
17
|
+
This file defines how those external sources should be used.
|
|
18
|
+
|
|
19
|
+
## Canonical Source Order
|
|
20
|
+
|
|
21
|
+
### Tier 1: Official platform truth
|
|
22
|
+
|
|
23
|
+
Use these first when the question is about correctness, APIs, platform behavior, or Creator Hub rules:
|
|
24
|
+
|
|
25
|
+
- `https://github.com/Roblox/creator-docs`
|
|
26
|
+
- `https://gitmcp.io/Roblox/creator-docs`
|
|
27
|
+
|
|
28
|
+
These define the canonical platform truth.
|
|
29
|
+
|
|
30
|
+
### Tier 2: High-signal Roblox implementation references
|
|
31
|
+
|
|
32
|
+
Use these to improve implementation awareness after the official baseline is grounded:
|
|
33
|
+
|
|
34
|
+
- `https://github.com/sentinelcore/roblox-skills`
|
|
35
|
+
- `https://gitmcp.io/sentinelcore/roblox-skills`
|
|
36
|
+
- `https://github.com/greedychipmunk/agent-skills/tree/main/roblox-game-developer`
|
|
37
|
+
- `https://github.com/omer-metin/skills-for-antigravity/tree/main/skills/roblox-development`
|
|
38
|
+
- `https://github.com/dig1t/skills`
|
|
39
|
+
- `https://github.com/Corecii/Devprod`
|
|
40
|
+
- `https://gitmcp.io/Corecii/Devprod`
|
|
41
|
+
|
|
42
|
+
### Tier 3: Raw script corpora and broad pattern mining
|
|
43
|
+
|
|
44
|
+
Use these only as inspiration or anti-pattern review, never as canonical truth:
|
|
45
|
+
|
|
46
|
+
- `https://github.com/retpirato/Roblox-Scripts`
|
|
47
|
+
- `https://gitmcp.io/retpirato/Roblox-Scripts`
|
|
48
|
+
- `https://gitmcp.io/frosteen/Roblox_LUA_Weapon_Scripts`
|
|
49
|
+
- `https://gitmcp.io/uhub/awesome-lua`
|
|
50
|
+
- `https://gitmcp.io/LewisJEllis/awesome-lua`
|
|
51
|
+
- `https://gitmcp.io/forhappy/awesome-lua`
|
|
52
|
+
- `http://lua-users.org/wiki/SampleCode`
|
|
53
|
+
|
|
54
|
+
## Usage Rules
|
|
55
|
+
|
|
56
|
+
- Official Roblox docs decide correctness.
|
|
57
|
+
- Skill repositories improve implementation strategy, workflow framing, and checklist quality.
|
|
58
|
+
- Raw script corpora are weak signals only; treat them as inspiration or anti-pattern mining.
|
|
59
|
+
- Never present a third-party script repository as if it overrides official Roblox platform guidance.
|
|
60
|
+
- Prefer the serverless `gitmcp.io` mirror when fast MCP-style browsing helps, but do not confuse the mirror with official product ownership.
|
|
61
|
+
|
|
62
|
+
## RCS Fit
|
|
63
|
+
|
|
64
|
+
This repo should treat the layer like this:
|
|
65
|
+
|
|
66
|
+
- **RCS first-party MCP** = local runtime/state/control plane
|
|
67
|
+
- **Creator Docs / `gitmcp.io`** = external Roblox platform truth
|
|
68
|
+
- **Roblox skill repos** = implementation guidance and workflow references
|
|
69
|
+
- **Raw script corpora** = non-canonical pattern support only
|
|
70
|
+
|
|
71
|
+
## Template
|
|
72
|
+
|
|
73
|
+
Reference inventory shipped with the repo:
|
|
74
|
+
|
|
75
|
+
- `templates/roblox/reference-sources.md`
|
|
@@ -45,10 +45,18 @@ Priority 1: canonical platform truth
|
|
|
45
45
|
- `https://gitmcp.io/Roblox/creator-docs`
|
|
46
46
|
|
|
47
47
|
Priority 2: high-signal implementation references
|
|
48
|
+
- `https://github.com/sentinelcore/roblox-skills`
|
|
48
49
|
- `https://gitmcp.io/retpirato/Roblox-Scripts`
|
|
49
50
|
- `https://gitmcp.io/sentinelcore/roblox-skills`
|
|
50
|
-
- `https://
|
|
51
|
+
- `https://github.com/greedychipmunk/agent-skills/tree/main/roblox-game-developer`
|
|
52
|
+
- `https://github.com/omer-metin/skills-for-antigravity/tree/main/skills/roblox-development`
|
|
53
|
+
- `https://github.com/dig1t/skills`
|
|
54
|
+
- `https://github.com/Corecii/Devprod`
|
|
51
55
|
- `https://gitmcp.io/Corecii/Devprod`
|
|
56
|
+
|
|
57
|
+
Priority 3: raw script and corpus support
|
|
58
|
+
- `https://github.com/retpirato/Roblox-Scripts`
|
|
59
|
+
- `https://gitmcp.io/frosteen/Roblox_LUA_Weapon_Scripts`
|
|
52
60
|
- `https://gitmcp.io/uhub/awesome-lua`
|
|
53
61
|
- `https://gitmcp.io/LewisJEllis/awesome-lua`
|
|
54
62
|
- `https://gitmcp.io/forhappy/awesome-lua`
|
|
@@ -61,11 +69,15 @@ Priority 3: dataset and corpus support
|
|
|
61
69
|
- `https://datasets-server.huggingface.co/splits?dataset=TorpedoSoftware%2FRoblox-Luau-Reasoning-v1.0`
|
|
62
70
|
- `https://huggingface.co/datasets/bartholomort/lua-obfuscator-corpus`
|
|
63
71
|
|
|
64
|
-
|
|
72
|
+
Reference policy:
|
|
65
73
|
- official Roblox docs define correctness
|
|
66
|
-
- repos improve implementation awareness only
|
|
74
|
+
- Roblox skill repos improve implementation awareness only
|
|
67
75
|
- datasets are weak pattern support only
|
|
68
76
|
|
|
77
|
+
Canonical reference-layer policy is documented in:
|
|
78
|
+
- `docs/reference/roblox-mcp-reference-layer.md`
|
|
79
|
+
- `templates/roblox/reference-sources.md`
|
|
80
|
+
|
|
69
81
|
## Phase 2: Understanding Synthesis
|
|
70
82
|
|
|
71
83
|
Before implementation, answer:
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Roblox Creator Skills v0.1.8
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
`v0.1.8` is the MCP/reference-layer activation release after the `0.1.7` docs and localization hardening line. It makes the GitMCP Roblox reference sources part of the default managed Codex setup, documents the activation split more clearly, and adds the tests needed to keep that default layer stable.
|
|
6
|
+
|
|
7
|
+
## What changed
|
|
8
|
+
|
|
9
|
+
- Default managed Codex config now includes:
|
|
10
|
+
- `creator_docs`
|
|
11
|
+
- `roblox_skills`
|
|
12
|
+
- `devprod_docs`
|
|
13
|
+
- `roblox_scripts_corpus`
|
|
14
|
+
- Added canonical docs for the Roblox MCP reference layer
|
|
15
|
+
- Added a shipped reference-source template inventory
|
|
16
|
+
- Clarified in README and localized READMEs that:
|
|
17
|
+
- `rcs mcp-serve` is for first-party local RCS MCP servers
|
|
18
|
+
- GitMCP Roblox references should stay enabled by default
|
|
19
|
+
- `robloxstudio-mcp` remains a manual live Studio bridge
|
|
20
|
+
|
|
21
|
+
## Verification
|
|
22
|
+
|
|
23
|
+
- `npm run build`
|
|
24
|
+
- `node --test dist/config/__tests__/roblox-reference-mcp.test.js dist/config/__tests__/generator-idempotent.test.js dist/verification/__tests__/roblox-mcp-reference-layer.test.js dist/verification/__tests__/robloxstudio-mcp-compatibility.test.js`
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Contributing Wiki
|
|
2
|
+
|
|
3
|
+
This page complements the repository root [CONTRIBUTING.md](../../CONTRIBUTING.md).
|
|
4
|
+
|
|
5
|
+
## Fastest way to start
|
|
6
|
+
|
|
7
|
+
1. Read the root [README](../../README.md).
|
|
8
|
+
2. Run the local setup flow.
|
|
9
|
+
3. Look for issues labeled `good first issue` or `help wanted`.
|
|
10
|
+
4. Pick a small, self-contained task before touching larger workflow/runtime surfaces.
|
|
11
|
+
|
|
12
|
+
## What maintainers should optimize for
|
|
13
|
+
|
|
14
|
+
- a newcomer should be able to install, build, and smoke-test the repo in a few minutes
|
|
15
|
+
- issue descriptions should include clear reproduction or acceptance criteria
|
|
16
|
+
- docs, localization, wiki, and QA contributions count as real contributions
|
|
17
|
+
- roadmap items should be broken into slices that can be finished without deep repo archaeology
|
|
18
|
+
|
|
19
|
+
## Accepted contribution types
|
|
20
|
+
|
|
21
|
+
- code and tests
|
|
22
|
+
- docs and onboarding fixes
|
|
23
|
+
- localization updates
|
|
24
|
+
- issue triage and reproduction refinement
|
|
25
|
+
- release notes and changelog cleanup
|
|
26
|
+
- contributor-experience improvements
|
|
27
|
+
|
|
28
|
+
## Mentorship posture
|
|
29
|
+
|
|
30
|
+
- explain repo-local vocabulary when it is not obvious
|
|
31
|
+
- redirect contributors to the right doc instead of assuming they already know the surface
|
|
32
|
+
- prefer scoped guidance over vague “needs more work” reviews
|
|
33
|
+
- keep review feedback factual and actionable
|
|
34
|
+
|
|
35
|
+
## Labels that matter
|
|
36
|
+
|
|
37
|
+
- `good first issue`
|
|
38
|
+
- `help wanted`
|
|
39
|
+
- `docs`
|
|
40
|
+
- `localization`
|
|
41
|
+
- `wiki`
|
|
42
|
+
- `contributor experience`
|
|
43
|
+
- `release`
|
|
44
|
+
|
|
45
|
+
See [Good first issues and labels](./Good-First-Issues.md).
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Good First Issues and Labels
|
|
2
|
+
|
|
3
|
+
This page defines the maintainer standard for contributor-friendly task shaping.
|
|
4
|
+
|
|
5
|
+
## Required labels
|
|
6
|
+
|
|
7
|
+
- `good first issue` — small, safe, self-contained task with explicit acceptance criteria
|
|
8
|
+
- `help wanted` — useful task that is open to outside contribution, but may require more repo context
|
|
9
|
+
- `docs` — documentation surface
|
|
10
|
+
- `localization` — translation or locale-sync work
|
|
11
|
+
- `wiki` — contributor wiki or runtime wiki documentation surface
|
|
12
|
+
- `contributor experience` — onboarding, templates, setup, or workflow ergonomics
|
|
13
|
+
|
|
14
|
+
## What qualifies as a good first issue
|
|
15
|
+
|
|
16
|
+
- one surface or subsystem
|
|
17
|
+
- no hidden cross-repo dependency
|
|
18
|
+
- clear reproduction or acceptance criteria
|
|
19
|
+
- easy local verification path
|
|
20
|
+
- no risky release, auth, or multi-runtime migration work
|
|
21
|
+
|
|
22
|
+
## Good first issue examples in this repo
|
|
23
|
+
|
|
24
|
+
- clarify a Roblox-first prompt or skill example
|
|
25
|
+
- improve docs or setup wording
|
|
26
|
+
- sync README locale drift after a root README change
|
|
27
|
+
- add a missing focused test for a small contract
|
|
28
|
+
- fix a small CLI/help text mismatch
|
|
29
|
+
- tighten release notes or contributor guidance
|
|
30
|
+
|
|
31
|
+
## What should not be labeled good first issue
|
|
32
|
+
|
|
33
|
+
- large runtime refactors
|
|
34
|
+
- release workflow surgery without a focused scope
|
|
35
|
+
- tmux/team-state concurrency work with unclear blast radius
|
|
36
|
+
- broad prompt taxonomy rewrites
|
|
37
|
+
- changes that require maintainer-only credentials or environment access
|
|
38
|
+
|
|
39
|
+
## Maintainer checklist before applying the label
|
|
40
|
+
|
|
41
|
+
- task is broken down enough to fit in one PR
|
|
42
|
+
- expected files are named
|
|
43
|
+
- verification path is stated
|
|
44
|
+
- hidden blockers are removed or called out
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Contributor Wiki
|
|
2
|
+
|
|
3
|
+
This is the contributor-facing wiki source for `JustineDevs/roblox-ai-os`.
|
|
4
|
+
|
|
5
|
+
It is **not** the same thing as the local runtime wiki under `.rcs/wiki/`.
|
|
6
|
+
Use this wiki for community guidance, roadmap context, issue triage, and release operations.
|
|
7
|
+
|
|
8
|
+
## Start here
|
|
9
|
+
|
|
10
|
+
- [Contributing guide](./Contributing.md)
|
|
11
|
+
- [Good first issues and labels](./Good-First-Issues.md)
|
|
12
|
+
- [Roadmap](./Roadmap.md)
|
|
13
|
+
- [Release playbook](./Release-Playbook.md)
|
|
14
|
+
|
|
15
|
+
## What this wiki is for
|
|
16
|
+
|
|
17
|
+
- lowering the barrier to first contribution
|
|
18
|
+
- giving contributors a stable place to understand priorities
|
|
19
|
+
- showing maintainers how to label and scope newcomer-friendly work
|
|
20
|
+
- documenting release and update flows without forcing people to reverse-engineer workflow files
|
|
21
|
+
|
|
22
|
+
## Maintainer expectations
|
|
23
|
+
|
|
24
|
+
- keep issues small, explicit, and easy to test
|
|
25
|
+
- use `good first issue` and `help wanted` labels deliberately
|
|
26
|
+
- respond quickly when a contributor asks for clarification
|
|
27
|
+
- thank contributors in release notes, README acknowledgements, or follow-up docs when their work materially lands
|
|
28
|
+
- accept non-code contributions such as docs, localization, QA, roadmap refinement, and issue triage
|
|
29
|
+
- use an All Contributors-style mindset so contribution credit is not limited to code
|
|
30
|
+
|
|
31
|
+
## Source of truth
|
|
32
|
+
|
|
33
|
+
- Canonical public entry point: [../../README.md](../../README.md)
|
|
34
|
+
- Contributor workflow contract: [../../CONTRIBUTING.md](../../CONTRIBUTING.md)
|
|
35
|
+
- Roadmap source for contributor planning: [./Roadmap.md](./Roadmap.md)
|