development-hub/index.html

66 lines
20 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-overview" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Development Hub</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/development-hub/"><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="Development Hub"><meta data-rh="true" name="description" content="Central orchestration project for managing Rob&#x27;s multi-project development ecosystem."><meta data-rh="true" property="og:description" content="Central orchestration project for managing Rob&#x27;s multi-project development ecosystem."><link data-rh="true" rel="icon" href="/rob/development-hub/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/development-hub/"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/" 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/development-hub/</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":"Development Hub","item":"https://pages.brrd.tech/rob/development-hub/"}]}</script><link rel="stylesheet" href="/rob/development-hub/assets/css/styles.6095798e.css">
<script src="/rob/development-hub/assets/js/runtime~main.0e3f1510.js" defer="defer"></script>
<script src="/rob/development-hub/assets/js/main.4d3a13f1.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/rob/development-hub/"><b class="navbar__title text--truncate">Development Hub</b></a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://gitea.brrd.tech/rob/development-hub" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Source Code<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><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/rob/development-hub/"><span title="Development Hub" class="linkLabel_WmDU">Development Hub</span></a></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/rob/development-hub/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Development Hub</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Development Hub</h1></header>
<p>Central orchestration project for managing Rob&#x27;s multi-project development ecosystem.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
<p>Development Hub provides tooling to create and manage projects that follow consistent patterns:</p>
<ul>
<li class="">Centralized documentation via Docusaurus</li>
<li class="">Gitea repository hosting with Pages support</li>
<li class="">AI-assistant context files (CLAUDE.md)</li>
<li class="">Python project structure</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-new-project-script">The <code>new-project</code> Script<a href="#the-new-project-script" class="hash-link" aria-label="Direct link to the-new-project-script" title="Direct link to the-new-project-script" translate="no"></a></h2>
<p>The main tool is <code>new-project</code>, which automates creating a new project in the ecosystem:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">new-project my-tool --title &quot;My Tool&quot; --tagline &quot;Does useful things&quot;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-it-creates">What It Creates<a href="#what-it-creates" class="hash-link" aria-label="Direct link to What It Creates" title="Direct link to What It Creates" translate="no"></a></h3>
<ol>
<li class=""><strong>Gitea repository</strong> at <code>gitea.brrd.tech/rob/my-tool</code></li>
<li class=""><strong>Local project</strong> at <code>~/PycharmProjects/my-tool/</code> with:<!-- -->
<ul>
<li class=""><code>CLAUDE.md</code> - AI assistant context</li>
<li class=""><code>README.md</code> - Project readme</li>
<li class=""><code>pyproject.toml</code> - Python packaging</li>
<li class=""><code>.gitignore</code> - Standard ignores</li>
<li class=""><code>docs/</code> - Symlink to centralized docs</li>
</ul>
</li>
<li class=""><strong>Documentation folder</strong> at <code>project-docs/docs/projects/my-tool/</code></li>
<li class=""><strong>Build configuration</strong> in <code>build-public-docs.sh</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="usage">Usage<a href="#usage" class="hash-link" aria-label="Direct link to Usage" title="Direct link to Usage" translate="no"></a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Full specification</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">new-project myproject --title &quot;My Project&quot; --tagline &quot;Short description&quot;</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Interactive mode (prompts for title/tagline)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">new-project myproject</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Options</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">--dry-run Show what would happen without making changes</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">--skip-gitea Skip Gitea repo creation (for offline use)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">--help Show help</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="project-structure">Project Structure<a href="#project-structure" class="hash-link" aria-label="Direct link to Project Structure" title="Direct link to Project Structure" translate="no"></a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">development-hub/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── bin/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ └── new-project # Main scaffolding script</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── templates/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ ├── gitignore.template</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ ├── CLAUDE.md.template</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ ├── README.md.template</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ ├── pyproject.toml.template</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ ├── overview.md.template</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ └── updating-documentation.md.template</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── docs/ # Symlink to this folder</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── CLAUDE.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── README.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└── .gitignore</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="gitea-api-token">Gitea API Token<a href="#gitea-api-token" class="hash-link" aria-label="Direct link to Gitea API Token" title="Direct link to Gitea API Token" translate="no"></a></h3>
<p>The script needs a Gitea API token to create repositories automatically.</p>
<p><strong>Setup options:</strong></p>
<ol>
<li class="">Environment variable: <code>export GITEA_TOKEN=your_token</code></li>
<li class="">Config file: <code>~/.config/development-hub/gitea-token</code></li>
</ol>
<p>The script will prompt for the token on first run and save it automatically.</p>
<p><strong>Creating a token:</strong></p>
<ol>
<li class="">Go to <a href="https://gitea.brrd.tech/user/settings/applications" target="_blank" rel="noopener noreferrer" class="">https://gitea.brrd.tech/user/settings/applications</a></li>
<li class="">Generate a new token with &#x27;repo&#x27; scope</li>
<li class="">Copy the token when prompted</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="related-projects">Related Projects<a href="#related-projects" class="hash-link" aria-label="Direct link to Related Projects" title="Direct link to Related Projects" translate="no"></a></h2>
<p>Development Hub manages these projects:</p>
<table><thead><tr><th>Project</th><th>Description</th></tr></thead><tbody><tr><td><a class="" href="/rob/cmdforge/overview">CmdForge</a></td><td>AI-powered CLI tool builder</td></tr><tr><td><a class="" href="/rob/cascadingdev/overview">CascadingDev</a></td><td>Cascading Development Framework</td></tr><tr><td><a class="" href="/rob/orchestrated-discussions/overview">Orchestrated Discussions</a></td><td>AI Discussion Framework</td></tr><tr><td><a class="" href="/rob/artifact-editor/overview">Artifact Editor</a></td><td>Code Artifact Editor</td></tr><tr><td><a class="" href="/rob/ramble/overview">Ramble</a></td><td>Voice Note Transcription</td></tr></tbody></table>
<p>All projects follow the same patterns and can be created using <code>new-project</code>.</p></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#the-new-project-script" class="table-of-contents__link toc-highlight">The <code>new-project</code> Script</a><ul><li><a href="#what-it-creates" class="table-of-contents__link toc-highlight">What It Creates</a></li><li><a href="#usage" class="table-of-contents__link toc-highlight">Usage</a></li></ul></li><li><a href="#project-structure" class="table-of-contents__link toc-highlight">Project Structure</a></li><li><a href="#configuration" class="table-of-contents__link toc-highlight">Configuration</a><ul><li><a href="#gitea-api-token" class="table-of-contents__link toc-highlight">Gitea API Token</a></li></ul></li><li><a href="#related-projects" class="table-of-contents__link toc-highlight">Related Projects</a></li></ul></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/development-hub/">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/development-hub" 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">Development Hub Documentation</div></div></div></footer></div>
</body>
</html>