Update documentation 2026-01-12

This commit is contained in:
rob 2026-01-12 12:39:06 -04:00
parent 71b07c0d24
commit fcb3aaebce
11 changed files with 23 additions and 13 deletions

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">CmdForge</title><meta data-rh="true" property="og:title" content="CmdForge"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pages.brrd.tech/rob/CmdForge/404.html"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><link data-rh="true" rel="icon" href="/rob/CmdForge/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/CmdForge/404.html"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/404.html" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/404.html" hreflang="x-default"><link rel="stylesheet" href="/rob/CmdForge/assets/css/styles.6095798e.css">
<script src="/rob/CmdForge/assets/js/runtime~main.464d1880.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/runtime~main.54641272.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/main.fe1fa999.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">CmdForge Architecture | CmdForge</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pages.brrd.tech/rob/CmdForge/architecture"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="CmdForge Architecture | CmdForge"><meta data-rh="true" name="description" content="Module Structure"><meta data-rh="true" property="og:description" content="Module Structure"><link data-rh="true" rel="icon" href="/rob/CmdForge/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/CmdForge/architecture"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/architecture" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/architecture" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"CmdForge Architecture","item":"https://pages.brrd.tech/rob/CmdForge/architecture"}]}</script><link rel="stylesheet" href="/rob/CmdForge/assets/css/styles.6095798e.css">
<script src="/rob/CmdForge/assets/js/runtime~main.464d1880.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/runtime~main.54641272.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/main.fe1fa999.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[574],{921(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"milestones","title":"Milestones","description":"M0: Core Platform","source":"@site/docs/milestones.md","sourceDirName":".","slug":"/milestones","permalink":"/rob/CmdForge/milestones","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"type":"milestones","project":"cmdforge","updated":"2026-01-07T00:00:00.000Z"},"sidebar":"docs","previous":{"title":"Ideas & Exploration","permalink":"/rob/CmdForge/ideas-and-exploration"}}');var r=t(4848),s=t(8453);const i={type:"milestones",project:"cmdforge",updated:new Date("2026-01-07T00:00:00.000Z")},l="Milestones",c={},d=[{value:"M0: Core Platform",id:"m0-core-platform",level:4},{value:"M1: Production Ready",id:"m1-production-ready",level:4},{value:"M2: Tool Discovery",id:"m2-tool-discovery",level:4},{value:"M3: Plugin System",id:"m3-plugin-system",level:4}];function a(e){const n={h1:"h1",h4:"h4",header:"header",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"milestones",children:"Milestones"})}),"\n",(0,r.jsx)(n.h4,{id:"m0-core-platform",children:"M0: Core Platform"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Target"}),": December 2025\n",(0,r.jsx)(n.strong,{children:"Status"}),": Completed (100%)"]}),"\n",(0,r.jsx)(n.p,{children:"The foundational CmdForge platform with AI-powered CLI tool builder, YAML tool definitions, web UI, offline caching, and provider abstraction."}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h4,{id:"m1-production-ready",children:"M1: Production Ready"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Target"}),": February 2026\n",(0,r.jsx)(n.strong,{children:"Status"}),": In Progress (60%)"]}),"\n",(0,r.jsx)(n.p,{children:"Production deployment with proper server configuration and complete documentation."}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h4,{id:"m2-tool-discovery",children:"M2: Tool Discovery"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Target"}),": Q2 2026\n",(0,r.jsx)(n.strong,{children:"Status"}),": Not Started"]}),"\n",(0,r.jsx)(n.p,{children:"Enable users to discover, rate, and share tools through a marketplace interface."}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h4,{id:"m3-plugin-system",children:"M3: Plugin System"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Target"}),": Q3 2026\n",(0,r.jsx)(n.strong,{children:"Status"}),": Planning (0%)"]}),"\n",(0,r.jsx)(n.p,{children:"Extensible plugin architecture for custom backends and tool composition."}),"\n",(0,r.jsx)(n.hr,{})]})}function p(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453(e,n,t){t.d(n,{R:()=>i,x:()=>l});var o=t(6540);const r={},s=o.createContext(r);function i(e){const n=o.useContext(s);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]);

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(()=>{"use strict";var e,r,t,a,o,n={},i={};function c(e){var r=i[e];if(void 0!==r)return r.exports;var t=i[e]={id:e,loaded:!1,exports:{}};return n[e].call(t.exports,t,t.exports,c),t.loaded=!0,t.exports}c.m=n,c.c=i,e=[],c.O=(r,t,a,o)=>{if(!t){var n=1/0;for(l=0;l<e.length;l++){for(var[t,a,o]=e[l],i=!0,d=0;d<t.length;d++)(!1&o||n>=o)&&Object.keys(c.O).every(e=>c.O[e](t[d]))?t.splice(d--,1):(i=!1,o<n&&(n=o));if(i){e.splice(l--,1);var f=a();void 0!==f&&(r=f)}}return r}o=o||0;for(var l=e.length;l>0&&e[l-1][2]>o;l--)e[l]=e[l-1];e[l]=[t,a,o]},c.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return c.d(r,{a:r}),r},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);c.r(o);var n={};r=r||[null,t({}),t([]),t(t)];for(var i=2&a&&e;("object"==typeof i||"function"==typeof i)&&!~r.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(r=>n[r]=()=>e[r]);return n.default=()=>e,c.d(o,n),o},c.d=(e,r)=>{for(var t in r)c.o(r,t)&&!c.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((r,t)=>(c.f[t](e,r),r),[])),c.u=e=>"assets/js/"+({48:"a94703ab",98:"a7bd4aaa",207:"e719f3dc",393:"1db78e9f",401:"17896441",413:"1db64337",443:"5281b7a2",574:"817f7194",647:"5e95c892",742:"aba21aa0",854:"3fbf7384",894:"5eebbccf"}[e]||e)+"."+{48:"b8c77466",98:"3ba34601",207:"a5309d63",237:"447ba118",393:"271966f9",401:"a2525508",413:"dd4b0e6b",443:"06e90270",574:"229a6129",647:"a3b66919",742:"4a552a5c",854:"58217f0b",894:"ab36aeeb"}[e]+".js",c.miniCssF=e=>{},c.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),a={},o="project-public-docs:",c.l=(e,r,t,n)=>{if(a[e])a[e].push(r);else{var i,d;if(void 0!==t)for(var f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var u=f[l];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==o+t){i=u;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",c.nc&&i.setAttribute("nonce",c.nc),i.setAttribute("data-webpack",o+t),i.src=e),a[e]=[r];var b=(r,t)=>{i.onerror=i.onload=null,clearTimeout(s);var o=a[e];if(delete a[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(e=>e(t)),r)return r(t)},s=setTimeout(b.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=b.bind(null,i.onerror),i.onload=b.bind(null,i.onload),d&&document.head.appendChild(i)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/rob/CmdForge/",c.gca=function(e){return e={17896441:"401",a94703ab:"48",a7bd4aaa:"98",e719f3dc:"207","1db78e9f":"393","1db64337":"413","5281b7a2":"443","817f7194":"574","5e95c892":"647",aba21aa0:"742","3fbf7384":"854","5eebbccf":"894"}[e]||e,c.p+c.u(e)},(()=>{var e={354:0,869:0};c.f.j=(r,t)=>{var a=c.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else if(/^(354|869)$/.test(r))e[r]=0;else{var o=new Promise((t,o)=>a=e[r]=[t,o]);t.push(a[2]=o);var n=c.p+c.u(r),i=new Error;c.l(n,t=>{if(c.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+n+")",i.name="ChunkLoadError",i.type=o,i.request=n,a[1](i)}},"chunk-"+r,r)}},c.O.j=r=>0===e[r];var r=(r,t)=>{var a,o,[n,i,d]=t,f=0;if(n.some(r=>0!==e[r])){for(a in i)c.o(i,a)&&(c.m[a]=i[a]);if(d)var l=d(c)}for(r&&r(t);f<n.length;f++)o=n[f],c.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return c.O(l)},t=globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})();
(()=>{"use strict";var e,r,t,a,o,n={},i={};function c(e){var r=i[e];if(void 0!==r)return r.exports;var t=i[e]={id:e,loaded:!1,exports:{}};return n[e].call(t.exports,t,t.exports,c),t.loaded=!0,t.exports}c.m=n,c.c=i,e=[],c.O=(r,t,a,o)=>{if(!t){var n=1/0;for(l=0;l<e.length;l++){for(var[t,a,o]=e[l],i=!0,d=0;d<t.length;d++)(!1&o||n>=o)&&Object.keys(c.O).every(e=>c.O[e](t[d]))?t.splice(d--,1):(i=!1,o<n&&(n=o));if(i){e.splice(l--,1);var f=a();void 0!==f&&(r=f)}}return r}o=o||0;for(var l=e.length;l>0&&e[l-1][2]>o;l--)e[l]=e[l-1];e[l]=[t,a,o]},c.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return c.d(r,{a:r}),r},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);c.r(o);var n={};r=r||[null,t({}),t([]),t(t)];for(var i=2&a&&e;("object"==typeof i||"function"==typeof i)&&!~r.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(r=>n[r]=()=>e[r]);return n.default=()=>e,c.d(o,n),o},c.d=(e,r)=>{for(var t in r)c.o(r,t)&&!c.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((r,t)=>(c.f[t](e,r),r),[])),c.u=e=>"assets/js/"+({48:"a94703ab",98:"a7bd4aaa",207:"e719f3dc",393:"1db78e9f",401:"17896441",413:"1db64337",443:"5281b7a2",574:"817f7194",647:"5e95c892",742:"aba21aa0",854:"3fbf7384",894:"5eebbccf"}[e]||e)+"."+{48:"b8c77466",98:"3ba34601",207:"a5309d63",237:"447ba118",393:"cd3f507f",401:"a2525508",413:"dd4b0e6b",443:"06e90270",574:"8359c903",647:"a3b66919",742:"4a552a5c",854:"58217f0b",894:"ab36aeeb"}[e]+".js",c.miniCssF=e=>{},c.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),a={},o="project-public-docs:",c.l=(e,r,t,n)=>{if(a[e])a[e].push(r);else{var i,d;if(void 0!==t)for(var f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var u=f[l];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==o+t){i=u;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",c.nc&&i.setAttribute("nonce",c.nc),i.setAttribute("data-webpack",o+t),i.src=e),a[e]=[r];var b=(r,t)=>{i.onerror=i.onload=null,clearTimeout(s);var o=a[e];if(delete a[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(e=>e(t)),r)return r(t)},s=setTimeout(b.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=b.bind(null,i.onerror),i.onload=b.bind(null,i.onload),d&&document.head.appendChild(i)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/rob/CmdForge/",c.gca=function(e){return e={17896441:"401",a94703ab:"48",a7bd4aaa:"98",e719f3dc:"207","1db78e9f":"393","1db64337":"413","5281b7a2":"443","817f7194":"574","5e95c892":"647",aba21aa0:"742","3fbf7384":"854","5eebbccf":"894"}[e]||e,c.p+c.u(e)},(()=>{var e={354:0,869:0};c.f.j=(r,t)=>{var a=c.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else if(/^(354|869)$/.test(r))e[r]=0;else{var o=new Promise((t,o)=>a=e[r]=[t,o]);t.push(a[2]=o);var n=c.p+c.u(r),i=new Error;c.l(n,t=>{if(c.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+n+")",i.name="ChunkLoadError",i.type=o,i.request=n,a[1](i)}},"chunk-"+r,r)}},c.O.j=r=>0===e[r];var r=(r,t)=>{var a,o,[n,i,d]=t,f=0;if(n.some(r=>0!==e[r])){for(a in i)c.o(i,a)&&(c.m[a]=i[a]);if(d)var l=d(c)}for(r&&r(t);f<n.length;f++)o=n[f],c.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return c.O(l)},t=globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})();

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Goals | CmdForge</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pages.brrd.tech/rob/CmdForge/goals"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Goals | CmdForge"><meta data-rh="true" name="description" content="Vision"><meta data-rh="true" property="og:description" content="Vision"><link data-rh="true" rel="icon" href="/rob/CmdForge/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/CmdForge/goals"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/goals" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/goals" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Goals","item":"https://pages.brrd.tech/rob/CmdForge/goals"}]}</script><link rel="stylesheet" href="/rob/CmdForge/assets/css/styles.6095798e.css">
<script src="/rob/CmdForge/assets/js/runtime~main.464d1880.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/runtime~main.54641272.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/main.fe1fa999.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Ideas &amp; Exploration | CmdForge</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pages.brrd.tech/rob/CmdForge/ideas-and-exploration"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Ideas &amp; Exploration | CmdForge"><meta data-rh="true" name="description" content="Ideas"><meta data-rh="true" property="og:description" content="Ideas"><link data-rh="true" rel="icon" href="/rob/CmdForge/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/CmdForge/ideas-and-exploration"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/ideas-and-exploration" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/ideas-and-exploration" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Ideas & Exploration","item":"https://pages.brrd.tech/rob/CmdForge/ideas-and-exploration"}]}</script><link rel="stylesheet" href="/rob/CmdForge/assets/css/styles.6095798e.css">
<script src="/rob/CmdForge/assets/js/runtime~main.464d1880.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/runtime~main.54641272.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/main.fe1fa999.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">CmdForge Overview | CmdForge</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pages.brrd.tech/rob/CmdForge/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="CmdForge Overview | CmdForge"><meta data-rh="true" name="description" content="A lightweight personal tool builder for AI-powered CLI commands."><meta data-rh="true" property="og:description" content="A lightweight personal tool builder for AI-powered CLI commands."><link data-rh="true" rel="icon" href="/rob/CmdForge/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/CmdForge/"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/rob/CmdForge/</span> </p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),o=window.location.pathname,s="/"===o.substr(-1)?o:o+"/";e.innerHTML=s}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"CmdForge Overview","item":"https://pages.brrd.tech/rob/CmdForge/"}]}</script><link rel="stylesheet" href="/rob/CmdForge/assets/css/styles.6095798e.css">
<script src="/rob/CmdForge/assets/js/runtime~main.464d1880.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/runtime~main.54641272.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/main.fe1fa999.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Milestones | CmdForge</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pages.brrd.tech/rob/CmdForge/milestones"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Milestones | CmdForge"><meta data-rh="true" name="description" content="M0: Core Platform"><meta data-rh="true" property="og:description" content="M0: Core Platform"><link data-rh="true" rel="icon" href="/rob/CmdForge/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/CmdForge/milestones"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/milestones" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/milestones" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Milestones","item":"https://pages.brrd.tech/rob/CmdForge/milestones"}]}</script><link rel="stylesheet" href="/rob/CmdForge/assets/css/styles.6095798e.css">
<script src="/rob/CmdForge/assets/js/runtime~main.464d1880.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/runtime~main.54641272.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/main.fe1fa999.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
@ -16,21 +16,25 @@
<p><strong>Target</strong>: December 2025
<strong>Status</strong>: Completed (100%)</p>
<p>The foundational CmdForge platform with AI-powered CLI tool builder, YAML tool definitions, web UI, offline caching, and provider abstraction.</p>
<table><thead><tr><th>Deliverable</th><th>Status</th></tr></thead><tbody><tr><td>YAML tool definition system</td><td>Done</td></tr><tr><td>CLI entry point and subcommands</td><td>Done</td></tr><tr><td>Provider abstraction layer</td><td>Done</td></tr><tr><td>Offline caching for tools</td><td>Done</td></tr><tr><td>Web UI for tool browsing</td><td>Done</td></tr><tr><td>Tool execution engine</td><td>Done</td></tr></tbody></table>
<hr>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m1-production-ready">M1: Production Ready<a href="#m1-production-ready" class="hash-link" aria-label="Direct link to M1: Production Ready" title="Direct link to M1: Production Ready" translate="no"></a></h4>
<p><strong>Target</strong>: February 2026
<strong>Status</strong>: In Progress (60%)</p>
<p>Production deployment with proper server configuration and complete documentation.</p>
<p>Production deployment with proper server configuration, complete documentation, and improved reliability.</p>
<table><thead><tr><th>Deliverable</th><th>Status</th></tr></thead><tbody><tr><td>Public documentation</td><td>Done</td></tr><tr><td>Systemd service setup</td><td>Done</td></tr><tr><td>Gunicorn production server</td><td>Not Started</td></tr><tr><td>Systemd linger for persistence</td><td>Not Started</td></tr><tr><td>CI/CD pipeline</td><td>Not Started</td></tr><tr><td>Error message improvements</td><td>Not Started</td></tr></tbody></table>
<hr>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m2-tool-discovery">M2: Tool Discovery<a href="#m2-tool-discovery" class="hash-link" aria-label="Direct link to M2: Tool Discovery" title="Direct link to M2: Tool Discovery" translate="no"></a></h4>
<p><strong>Target</strong>: Q2 2026
<strong>Status</strong>: Not Started</p>
<p>Enable users to discover, rate, and share tools through a marketplace interface.</p>
<p>Enable users to discover, rate, and share tools through a marketplace interface with curation to maintain quality.</p>
<table><thead><tr><th>Deliverable</th><th>Status</th></tr></thead><tbody><tr><td>Tool search and filtering</td><td>Not Started</td></tr><tr><td>Registry curation system</td><td>Not Started</td></tr><tr><td>Tool ratings/reviews</td><td>Not Started</td></tr><tr><td>Import remaining Fabric patterns</td><td>Not Started</td></tr><tr><td>Tool marketplace UI</td><td>Not Started</td></tr></tbody></table>
<hr>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m3-plugin-system">M3: Plugin System<a href="#m3-plugin-system" class="hash-link" aria-label="Direct link to M3: Plugin System" title="Direct link to M3: Plugin System" translate="no"></a></h4>
<p><strong>Target</strong>: Q3 2026
<strong>Status</strong>: Planning (0%)</p>
<p>Extensible plugin architecture for custom backends and tool composition.</p>
<p>Extensible plugin architecture for custom backends, tool composition, and automated testing.</p>
<table><thead><tr><th>Deliverable</th><th>Status</th></tr></thead><tbody><tr><td>Plugin architecture design</td><td>Not Started</td></tr><tr><td>Custom AI backend support</td><td>Not Started</td></tr><tr><td>Tool composition and chaining</td><td>Not Started</td></tr><tr><td>Tool testing framework</td><td>Not Started</td></tr></tbody></table>
<hr></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/rob/CmdForge/ideas-and-exploration"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Ideas &amp; Exploration</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/rob/CmdForge/">Overview</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gitea.brrd.tech/rob/CmdForge" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">CmdForge Documentation</div></div></div></footer></div>
</body>
</html>

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">CmdForge TODOs | CmdForge</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pages.brrd.tech/rob/CmdForge/todos"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="CmdForge TODOs | CmdForge"><meta data-rh="true" name="description" content="Active Tasks"><meta data-rh="true" property="og:description" content="Active Tasks"><link data-rh="true" rel="icon" href="/rob/CmdForge/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/CmdForge/todos"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/todos" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/todos" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"CmdForge TODOs","item":"https://pages.brrd.tech/rob/CmdForge/todos"}]}</script><link rel="stylesheet" href="/rob/CmdForge/assets/css/styles.6095798e.css">
<script src="/rob/CmdForge/assets/js/runtime~main.464d1880.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/runtime~main.54641272.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/main.fe1fa999.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
@ -41,6 +41,11 @@
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Set up systemd service on production (2025-12-05)</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Fix database persistence with backup/restore (2025-12-03)</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Update cron jobs to use cmdforge names (2025-12-01)</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Implement YAML tool definition system @M0 (2025-12-01)</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Create CLI entry point and subcommands @M0 (2025-11-15)</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Build provider abstraction layer @M0 (2025-11-10)</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Add offline caching for tools @M0 (2025-11-05)</li>
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->Create web UI for tool browsing @M0 (2025-10-20)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ideas--backlog">Ideas / Backlog<a href="#ideas--backlog" class="hash-link" aria-label="Direct link to Ideas / Backlog" title="Direct link to Ideas / Backlog" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="registry-curation-system-m2">Registry Curation System @M2<a href="#registry-curation-system-m2" class="hash-link" aria-label="Direct link to Registry Curation System @M2" title="Direct link to Registry Curation System @M2" translate="no"></a></h3>
@ -63,6 +68,7 @@
<li class="">Custom AI backend support @M3</li>
<li class="">Tool composition and chaining @M3</li>
<li class="">Tool testing framework @M3</li>
<li class="">GUI tool builder (visual YAML editor)</li>
<li class="">VS Code extension</li>
<li class="">Provider auto-detection</li>
</ul>