TRUSS-1: init code commit of truss
This commit is contained in:
789
output/index.html
Normal file
789
output/index.html
Normal file
@@ -0,0 +1,789 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Arcline — TODO</title>
|
||||
<style>
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* Reset & base */
|
||||
/* ------------------------------------------------------------------ */
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
|
||||
:root {
|
||||
--bg: #f4f5f7;
|
||||
--surface: #ffffff;
|
||||
--border: #dfe1e6;
|
||||
--text: #172b4d;
|
||||
--muted: #6b778c;
|
||||
--track-it: #0052cc;
|
||||
--track-os: #36b37e;
|
||||
--track-both: #6554c0;
|
||||
--backlog: #dfe1e6;
|
||||
--inprogress: #ffc400;
|
||||
--inreview: #00b8d9;
|
||||
--done: #36b37e;
|
||||
--card-shadow: 0 1px 3px rgba(9,30,66,0.08);
|
||||
--card-hover: 0 2px 6px rgba(9,30,66,0.14);
|
||||
--radius: 8px;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
||||
"Helvetica Neue", Arial, sans-serif;
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
line-height: 1.5;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* Header */
|
||||
/* ------------------------------------------------------------------ */
|
||||
header {
|
||||
background: var(--surface);
|
||||
border-bottom: 1px solid var(--border);
|
||||
padding: 24px 32px;
|
||||
}
|
||||
|
||||
header h1 {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 700;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
header h1 .logo {
|
||||
background: linear-gradient(135deg, #0052cc, #6554c0);
|
||||
color: #fff;
|
||||
width: 32px; height: 32px;
|
||||
border-radius: 6px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
header .subtitle {
|
||||
color: var(--muted);
|
||||
margin-top: 4px;
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* Legend */
|
||||
/* ------------------------------------------------------------------ */
|
||||
.legend-bar {
|
||||
background: var(--surface);
|
||||
border-bottom: 1px solid var(--border);
|
||||
padding: 12px 32px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 16px;
|
||||
align-items: center;
|
||||
font-size: 0.85rem;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
.legend-bar strong { color: var(--text); }
|
||||
|
||||
.track-badge {
|
||||
display: inline-block;
|
||||
padding: 2px 8px;
|
||||
border-radius: 3px;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 700;
|
||||
color: #fff;
|
||||
}
|
||||
.track-it { background: var(--track-it); }
|
||||
.track-os { background: var(--track-os); }
|
||||
.track-both { background: var(--track-both); }
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* Legend table */
|
||||
/* ------------------------------------------------------------------ */
|
||||
.legend-table-wrap {
|
||||
padding: 20px 32px 16px;
|
||||
background: var(--surface);
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.legend-table-wrap h2 {
|
||||
font-size: 1rem;
|
||||
margin-bottom: 10px;
|
||||
color: var(--muted);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
table.legend {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
table.legend th {
|
||||
text-align: left;
|
||||
padding: 8px 12px;
|
||||
border-bottom: 2px solid var(--border);
|
||||
color: var(--muted);
|
||||
font-weight: 600;
|
||||
font-size: 0.8rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
|
||||
table.legend td {
|
||||
padding: 8px 12px;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
table.legend tr:last-child td { border-bottom: none; }
|
||||
|
||||
.status-pill {
|
||||
display: inline-block;
|
||||
padding: 2px 10px;
|
||||
border-radius: 12px;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
color: #fff;
|
||||
}
|
||||
.status-backlog { background: var(--backlog); color: #42526e; }
|
||||
.status-inprogress { background: var(--inprogress); color: #172b4d; }
|
||||
.status-inreview { background: var(--inreview); }
|
||||
.status-done { background: var(--done); }
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* Board */
|
||||
/* ------------------------------------------------------------------ */
|
||||
.board {
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
padding: 24px 32px;
|
||||
overflow-x: auto;
|
||||
min-height: calc(100vh - 340px);
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.column {
|
||||
flex: 1;
|
||||
min-width: 280px;
|
||||
max-width: 380px;
|
||||
background: #ebecf0;
|
||||
border-radius: var(--radius);
|
||||
padding: 12px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.column.done { background: #e3fcef; }
|
||||
|
||||
.column-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 4px 8px 8px;
|
||||
}
|
||||
|
||||
.column-header h2 {
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.04em;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
.column-count {
|
||||
background: rgba(9,30,66,0.08);
|
||||
color: var(--muted);
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
padding: 2px 8px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* Cards */
|
||||
/* ------------------------------------------------------------------ */
|
||||
.card-list {
|
||||
list-style: none;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
.card {
|
||||
background: var(--surface);
|
||||
border-radius: 6px;
|
||||
padding: 12px 14px;
|
||||
box-shadow: var(--card-shadow);
|
||||
cursor: default;
|
||||
transition: box-shadow 0.15s ease, transform 0.15s ease;
|
||||
border-left: 3px solid var(--border);
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
box-shadow: var(--card-hover);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.card.checked {
|
||||
opacity: 0.65;
|
||||
text-decoration: line-through;
|
||||
text-decoration-color: var(--muted);
|
||||
}
|
||||
|
||||
.card.track-it { border-left-color: var(--track-it); }
|
||||
.card.track-os { border-left-color: var(--track-os); }
|
||||
.card.track-both { border-left-color: var(--track-both); }
|
||||
|
||||
.card .card-meta {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.card .codename {
|
||||
font-weight: 700;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.card .description {
|
||||
font-size: 0.82rem;
|
||||
color: var(--muted);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* Notes */
|
||||
/* ------------------------------------------------------------------ */
|
||||
.notes {
|
||||
padding: 20px 32px 32px;
|
||||
background: var(--surface);
|
||||
border-top: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.notes h2 {
|
||||
font-size: 0.95rem;
|
||||
margin-bottom: 8px;
|
||||
color: var(--muted);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
.notes ul {
|
||||
list-style: disc inside;
|
||||
color: var(--muted);
|
||||
font-size: 0.85rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* Footer */
|
||||
/* ------------------------------------------------------------------ */
|
||||
footer {
|
||||
text-align: center;
|
||||
padding: 16px;
|
||||
font-size: 0.78rem;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
footer a {
|
||||
color: var(--track-it);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* Responsive */
|
||||
/* ------------------------------------------------------------------ */
|
||||
@media (max-width: 900px) {
|
||||
.board { flex-direction: column; padding: 16px; }
|
||||
.column { max-width: 100%; }
|
||||
header, .legend-bar, .legend-table-wrap, .notes { padding-left: 16px; padding-right: 16px; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- ================================================================= -->
|
||||
<!-- Header -->
|
||||
<!-- ================================================================= -->
|
||||
<header>
|
||||
<h1>
|
||||
<span class="logo">⌂</span>
|
||||
Arcline — TODO
|
||||
</h1>
|
||||
<p class="subtitle">In-house Kanban board for <strong>Arcline IT</strong> (<a href="https://arcline.it">arcline.it</a>) and <strong>The Arcline Project</strong> (<a href="https://arclineproject.org">arclineproject.org</a>).</p>
|
||||
</header>
|
||||
|
||||
<!-- ================================================================= -->
|
||||
<!-- Legend bar -->
|
||||
<!-- ================================================================= -->
|
||||
<div class="legend-bar">
|
||||
<span><strong>Track:</strong></span>
|
||||
<span class="track-badge track-it">IT</span> arcline.it
|
||||
<span class="track-badge track-os">OS</span> arclineproject.org
|
||||
<span class="track-badge track-both">IT/OS</span> shared
|
||||
<span style="margin-left:auto">Move cards between sections as they progress: `Backlog → In Progress → In Review → Done`.</span>
|
||||
</div>
|
||||
|
||||
<!-- ================================================================= -->
|
||||
<!-- Codename Legend table -->
|
||||
<!-- ================================================================= -->
|
||||
|
||||
<div class="legend-table-wrap">
|
||||
<h2>Codename Legend</h2>
|
||||
<table class="legend">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Codename</th>
|
||||
<th>Initiative</th>
|
||||
<th>Track</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td><strong>Keystone</strong></td>
|
||||
<td>Customer portal + billing overhaul</td>
|
||||
<td>
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<span class="status-pill status-inprogress">In Progress</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>Cornerstone</strong></td>
|
||||
<td>Arcline OS alpha → public ISO release</td>
|
||||
<td>
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<span class="status-pill status-inprogress">In Progress</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>Buttress</strong></td>
|
||||
<td>`arcline-audit` hardening & CVE scan integration</td>
|
||||
<td>
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<span class="status-pill status-backlog">Backlog</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>Voussoir</strong></td>
|
||||
<td>Migration tool (cPanel/Plesk → Arcline)</td>
|
||||
<td>
|
||||
|
||||
<span class="track-badge track-both">IT/OS</span>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<span class="status-pill status-backlog">Backlog</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>Springer</strong></td>
|
||||
<td>Status page + uptime monitoring rollout</td>
|
||||
<td>
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<span class="status-pill status-inreview">In Review</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>Rampart</strong></td>
|
||||
<td>Firewall/nftables default-deny profile pass</td>
|
||||
<td>
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<span class="status-pill status-backlog">Backlog</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>Lintel</strong></td>
|
||||
<td>Docs site (docs.arcline.it) restructure</td>
|
||||
<td>
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<span class="status-pill status-backlog">Backlog</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>Plinth</strong></td>
|
||||
<td>Referral program launch</td>
|
||||
<td>
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<span class="status-pill status-backlog">Backlog</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>Abutment</strong></td>
|
||||
<td>Workstation (KDE) build target</td>
|
||||
<td>
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<span class="status-pill status-backlog">Backlog</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ================================================================= -->
|
||||
<!-- Board columns -->
|
||||
<!-- ================================================================= -->
|
||||
<div class="board">
|
||||
|
||||
<div class="column">
|
||||
<div class="column-header">
|
||||
<h2>Backlog</h2>
|
||||
<span class="column-count">9</span>
|
||||
</div>
|
||||
<ul class="card-list">
|
||||
|
||||
<li class="card track-os">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
|
||||
<span class="codename">Buttress</span>
|
||||
|
||||
</div>
|
||||
<p class="description">wire `arcline-audit` into CI for nightly CVE scans</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-os">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
|
||||
<span class="codename">Rampart</span>
|
||||
|
||||
</div>
|
||||
<p class="description">finalize default-deny nftables ruleset, document opt-in exceptions</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-os">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
|
||||
<span class="codename">Abutment</span>
|
||||
|
||||
</div>
|
||||
<p class="description">scope KDE Plasma workstation ISO target</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-it">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
|
||||
<span class="codename">Lintel</span>
|
||||
|
||||
</div>
|
||||
<p class="description">restructure docs.arcline.it into per-tool sections</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-it">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
|
||||
<span class="codename">Plinth</span>
|
||||
|
||||
</div>
|
||||
<p class="description">build referral program signup + tracking flow</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-both">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-both">IT/OS</span>
|
||||
|
||||
|
||||
<span class="codename">Voussoir</span>
|
||||
|
||||
</div>
|
||||
<p class="description">spec `arcline-migrate` cPanel import mapping</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-it">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
|
||||
</div>
|
||||
<p class="description">Case studies page — draft first 2 client write-ups</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-os">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
|
||||
</div>
|
||||
<p class="description">Grafana dashboard pack — ship default node_exporter + Loki dashboards</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-it">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
|
||||
</div>
|
||||
<p class="description">Game server plans — add automated backup scheduling to portal</p>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="column">
|
||||
<div class="column-header">
|
||||
<h2>In Progress</h2>
|
||||
<span class="column-count">4</span>
|
||||
</div>
|
||||
<ul class="card-list">
|
||||
|
||||
<li class="card track-it">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
|
||||
<span class="codename">Keystone</span>
|
||||
|
||||
</div>
|
||||
<p class="description">customer portal (`arcline-portal`) SSL + ticketing UI</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-it">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
|
||||
<span class="codename">Keystone</span>
|
||||
|
||||
</div>
|
||||
<p class="description">Stripe billing (`arcline-billing`) subscription sync</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-os">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
|
||||
<span class="codename">Cornerstone</span>
|
||||
|
||||
</div>
|
||||
<p class="description">ISO build pipeline (Debian Bookworm base)</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-os">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
|
||||
<span class="codename">Cornerstone</span>
|
||||
|
||||
</div>
|
||||
<p class="description">btrfs snapshot rollback QA pass</p>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="column">
|
||||
<div class="column-header">
|
||||
<h2>In Review</h2>
|
||||
<span class="column-count">2</span>
|
||||
</div>
|
||||
<ul class="card-list">
|
||||
|
||||
<li class="card track-it">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
|
||||
<span class="codename">Springer</span>
|
||||
|
||||
</div>
|
||||
<p class="description">status page generator (`arcline-status`) — awaiting Blake's sign-off</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-os">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
|
||||
</div>
|
||||
<p class="description">`arcline-dns` — multi-resolver propagation checker — code review open</p>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="column done">
|
||||
<div class="column-header">
|
||||
<h2>Done</h2>
|
||||
<span class="column-count">4</span>
|
||||
</div>
|
||||
<ul class="card-list">
|
||||
|
||||
<li class="card track-it checked">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
|
||||
</div>
|
||||
<p class="description">Site relaunch — arcline.it copy + pricing page</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-os checked">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
|
||||
</div>
|
||||
<p class="description">Site launch — arclineproject.org landing page</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-os checked">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-os">OS</span>
|
||||
|
||||
|
||||
</div>
|
||||
<p class="description">Toolchain announcement — 11 Go tools listed publicly</p>
|
||||
</li>
|
||||
|
||||
<li class="card track-it checked">
|
||||
<div class="card-meta">
|
||||
|
||||
|
||||
<span class="track-badge track-it">IT</span>
|
||||
|
||||
|
||||
</div>
|
||||
<p class="description">Acquired Saibeo Solutions, onboarded Ed Do as CTO</p>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ================================================================= -->
|
||||
<!-- Notes -->
|
||||
<!-- ================================================================= -->
|
||||
|
||||
<div class="notes">
|
||||
<h2>Notes</h2>
|
||||
<ul>
|
||||
|
||||
<li>Keep `[IT]` (arcline.it, revenue-facing) and `[OS]` (arclineproject.org, GPL/open-source)</li>
|
||||
|
||||
<li>New codenames go in the legend table before the card is created, not after.</li>
|
||||
|
||||
<li>Source repos live on `git.arcline.it` — link commits/PRs in card text once work starts.</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ================================================================= -->
|
||||
<!-- Footer -->
|
||||
<!-- ================================================================= -->
|
||||
<footer>
|
||||
Built with Python & Jinja2 ·
|
||||
<a href="https://arcline.it">arcline.it</a> ·
|
||||
<a href="https://arclineproject.org">arclineproject.org</a>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user