funding: mark Flagstar BIPOC + USDA Business Builder as closed/terminated
- Flagstar: program completed, all 35 awards already distributed - USDA Business Builder: TERMINATED July 15, 2025 (RFBC killed by current admin) - Updated funding-research.html with strikethrough + red badges + updated capital stack - Updated meeting agenda funding table (closures + added EASSI) - Added plane-projects/ scaffolds (Compose YAML, used API instead due to CE compat) - Added supply-checklist.csv, trailer-registry.md, README.html, kiowa-meeting-agenda.html
This commit is contained in:
parent
8a5d8e6ee2
commit
238c40d5e0
@ -214,7 +214,7 @@
|
|||||||
<div><b>Sole Member:</b> Samuel S. James</div>
|
<div><b>Sole Member:</b> Samuel S. James</div>
|
||||||
<div><b>State:</b> Indiana</div>
|
<div><b>State:</b> Indiana</div>
|
||||||
<div><b>EIN:</b> 42-4099038</div>
|
<div><b>EIN:</b> 42-4099038</div>
|
||||||
<div><b>Effective:</b> July 2026</div>
|
<div><b>Updated:</b> August 6, 2026</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- ORG CHART -->
|
<!-- ORG CHART -->
|
||||||
@ -238,8 +238,7 @@
|
|||||||
<h3>SnS Hospitality Group LLC</h3>
|
<h3>SnS Hospitality Group LLC</h3>
|
||||||
<div style="margin-bottom:8px"><span class="partner-badge">Kiowa Scott — 15%</span></div>
|
<div style="margin-bottom:8px"><span class="partner-badge">Kiowa Scott — 15%</span></div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Coffee Trailers (×10) <span class="status-badge active">ACTIVE</span></li>
|
<li>The Daily Pour (×10 trailers) <span class="status-badge active">FILED</span></li>
|
||||||
<li>Indian Food Truck <span class="status-badge pending">PENDING</span></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -273,7 +272,7 @@
|
|||||||
<td><b>SnS Hospitality Group LLC</b></td>
|
<td><b>SnS Hospitality Group LLC</b></td>
|
||||||
<td>Mobile/trailer-based food & beverage ventures</td>
|
<td>Mobile/trailer-based food & beverage ventures</td>
|
||||||
<td>Holdings (85%) + Kiowa Scott (15%)</td>
|
<td>Holdings (85%) + Kiowa Scott (15%)</td>
|
||||||
<td><span class="status-badge active">FORMING</span></td>
|
<td><span class="status-badge active">FILED 08/06/2026</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>SnS Properties LLC</b></td>
|
<td><b>SnS Properties LLC</b></td>
|
||||||
@ -288,19 +287,12 @@
|
|||||||
<table>
|
<table>
|
||||||
<tr><th>Venture</th><th>Model</th><th>Target</th><th>Investment/Unit</th><th>Status</th></tr>
|
<tr><th>Venture</th><th>Model</th><th>Target</th><th>Investment/Unit</th><th>Status</th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Coffee Trailers</b></td>
|
<td><b>The Daily Pour</b></td>
|
||||||
<td>Mobile drive-through, high-traffic lots</td>
|
<td>Mobile drive-through, high-traffic lots</td>
|
||||||
<td>10 locations — NW Indiana + Southern Michigan</td>
|
<td>10 locations — NW Indiana + Southern Michigan</td>
|
||||||
<td>$50K first / $35K each after</td>
|
<td>$50K first / $35K each after</td>
|
||||||
<td><span class="status-badge active">2-YEAR PLAN</span></td>
|
<td><span class="status-badge active">2-YEAR PLAN</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td><b>Indian Food Truck</b></td>
|
|
||||||
<td>Mobile food trailer</td>
|
|
||||||
<td>TBD — awaiting staff proposal</td>
|
|
||||||
<td>TBD</td>
|
|
||||||
<td><span class="status-badge pending">PENDING</span></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<!-- PARTNERSHIP -->
|
<!-- PARTNERSHIP -->
|
||||||
@ -342,7 +334,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
SnS Network Solutions Holdings LLC • 759 Boxwood Drive, South Bend, IN 46641<br>
|
SnS Network Solutions Holdings LLC • 759 Boxwood Drive, South Bend, IN 46614<br>
|
||||||
Internal planning document — not a legal filing
|
Internal planning document — not a legal filing
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
|||||||
296
businesses/sns-hospitality-group/coffee-trailers/README.html
Normal file
296
businesses/sns-hospitality-group/coffee-trailers/README.html
Normal file
@ -0,0 +1,296 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>SnS Hospitality Group — The Daily Pour</title>
|
||||||
|
<style>
|
||||||
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||||
|
body {
|
||||||
|
font-family: 'Montserrat', 'Segoe UI', sans-serif;
|
||||||
|
background: #F7EFE6;
|
||||||
|
color: #4B2E20;
|
||||||
|
line-height: 1.6;
|
||||||
|
padding: 2rem;
|
||||||
|
max-width: 1000px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
h1, h2, h3 { font-family: 'Playfair Display', Georgia, serif; }
|
||||||
|
h1 {
|
||||||
|
font-size: 2.2rem;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 0.25rem;
|
||||||
|
color: #4B2E20;
|
||||||
|
}
|
||||||
|
.tagline {
|
||||||
|
text-align: center;
|
||||||
|
font-style: italic;
|
||||||
|
color: #A78A7A;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
margin: 2rem 0 0.75rem;
|
||||||
|
padding-bottom: 0.3rem;
|
||||||
|
border-bottom: 2px solid #D4AF37;
|
||||||
|
}
|
||||||
|
h3 { font-size: 1.1rem; margin: 1.2rem 0 0.5rem; }
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin: 1rem 0;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
th, td {
|
||||||
|
padding: 0.5rem 0.75rem;
|
||||||
|
text-align: left;
|
||||||
|
border-bottom: 1px solid #E7B4B8;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
background: #4B2E20;
|
||||||
|
color: #F7EFE6;
|
||||||
|
font-weight: 600;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
letter-spacing: 0.5px;
|
||||||
|
}
|
||||||
|
tr:hover { background: rgba(231, 180, 184, 0.15); }
|
||||||
|
.color-swatch {
|
||||||
|
display: inline-block;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
border-radius: 50%;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-right: 6px;
|
||||||
|
border: 1px solid #A78A7A;
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
background: #4B2E20;
|
||||||
|
color: #F7EFE6;
|
||||||
|
padding: 0.15rem 0.4rem;
|
||||||
|
border-radius: 3px;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
}
|
||||||
|
.folder-tree {
|
||||||
|
background: #4B2E20;
|
||||||
|
color: #F7EFE6;
|
||||||
|
padding: 1.25rem 1.5rem;
|
||||||
|
border-radius: 8px;
|
||||||
|
font-family: 'Courier New', monospace;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
line-height: 1.8;
|
||||||
|
overflow-x: auto;
|
||||||
|
}
|
||||||
|
.section-card {
|
||||||
|
background: white;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 1.5rem;
|
||||||
|
margin: 1rem 0;
|
||||||
|
box-shadow: 0 2px 8px rgba(75, 46, 32, 0.08);
|
||||||
|
}
|
||||||
|
.status-badge {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0.2rem 0.6rem;
|
||||||
|
border-radius: 12px;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
font-weight: 600;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
.status-active { background: #A3B18A; color: white; }
|
||||||
|
.status-planned { background: #E7B4B8; color: #4B2E20; }
|
||||||
|
.note {
|
||||||
|
background: rgba(212, 175, 55, 0.12);
|
||||||
|
border-left: 3px solid #D4AF37;
|
||||||
|
padding: 0.75rem 1rem;
|
||||||
|
margin: 1rem 0;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 3rem;
|
||||||
|
padding-top: 1.5rem;
|
||||||
|
border-top: 1px solid #E7B4B8;
|
||||||
|
color: #A78A7A;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>The Daily Pour</h1>
|
||||||
|
<p class="tagline">Good Coffee. Great Vibes. On Purpose.</p>
|
||||||
|
|
||||||
|
<div class="section-card">
|
||||||
|
<h2>Overview</h2>
|
||||||
|
<p>Mobile drive-through coffee trailers operating across NW Indiana and Southern Michigan.
|
||||||
|
10 trailers planned over 5 years, each with its own codename and brand color.
|
||||||
|
Year 1: build and prove Trailer #1. Subsequent trailers every 6 months if profitable.</p>
|
||||||
|
<table>
|
||||||
|
<tr><th>Entity</th><td>SnS Hospitality Group LLC</td></tr>
|
||||||
|
<tr><th>Ownership</th><td>Sam James (85%) · Kiowa Scott (15%)</td></tr>
|
||||||
|
<tr><th>Target</th><td>10 locations over 5 years — NW Indiana + Southern Michigan</td></tr>
|
||||||
|
<tr><th>Investment per trailer</th><td>~$50,000 (first unit, incl. $15k reserve)</td></tr>
|
||||||
|
<tr><th>Project Mgmt</th><td><a href="https://plane.snsnetlabs.com/shg/" style="color:#D4AF37;">plane.snsnetlabs.com/shg</a></td></tr>
|
||||||
|
<tr><th>File Storage</th><td>Google Drive (SnS Hospitality Group LLC folder)</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Naming Convention</h2>
|
||||||
|
<div class="section-card">
|
||||||
|
<h3>Folders & Drive</h3>
|
||||||
|
<p><code>T[##]-[CODENAME]</code> — e.g. <code>T00-DRIP</code></p>
|
||||||
|
|
||||||
|
<h3>Internal Operations (network, POS, security)</h3>
|
||||||
|
<p><code>T[##]-[CODENAME]-[HEX]</code> — e.g. <code>T00-DRIP-4B2E20</code></p>
|
||||||
|
|
||||||
|
<div class="note">
|
||||||
|
The hex suffix is added <strong>only</strong> when SNS Networking has completed security
|
||||||
|
buildout and signed off. Until then, the trailer operates without the hex.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Trailer Registry</h2>
|
||||||
|
<div class="section-card">
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Trailer</th>
|
||||||
|
<th>Codename</th>
|
||||||
|
<th>Color</th>
|
||||||
|
<th>Hex</th>
|
||||||
|
<th>Status</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>T00</td>
|
||||||
|
<td>DRIP</td>
|
||||||
|
<td><span class="color-swatch" style="background:#4B2E20;"></span>Rich Brown</td>
|
||||||
|
<td><code>4B2E20</code></td>
|
||||||
|
<td><span class="status-badge status-planned">Pre-launch</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>T01</td>
|
||||||
|
<td>ROAST</td>
|
||||||
|
<td><span class="color-swatch" style="background:#E7B4B8;"></span>Blush Pink</td>
|
||||||
|
<td><code>E7B4B8</code></td>
|
||||||
|
<td><span class="status-badge status-planned">Planned</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>T02</td>
|
||||||
|
<td>BLOOM</td>
|
||||||
|
<td><span class="color-swatch" style="background:#F7EFE6; border-color:#A78A7A;"></span>Warm Cream</td>
|
||||||
|
<td><code>F7EFE6</code></td>
|
||||||
|
<td><span class="status-badge status-planned">Planned</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>T03</td>
|
||||||
|
<td>STEAM</td>
|
||||||
|
<td><span class="color-swatch" style="background:#D4AF37;"></span>Soft Gold</td>
|
||||||
|
<td><code>D4AF37</code></td>
|
||||||
|
<td><span class="status-badge status-planned">Planned</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>T04</td>
|
||||||
|
<td>GRIND</td>
|
||||||
|
<td><span class="color-swatch" style="background:#A78A7A;"></span>Taupe</td>
|
||||||
|
<td><code>A78A7A</code></td>
|
||||||
|
<td><span class="status-badge status-planned">Planned</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>T05</td>
|
||||||
|
<td>PRESS</td>
|
||||||
|
<td><span class="color-swatch" style="background:#A3B18A;"></span>Sage Green</td>
|
||||||
|
<td><code>A3B18A</code></td>
|
||||||
|
<td><span class="status-badge status-planned">Planned</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>T06</td>
|
||||||
|
<td>EMBER</td>
|
||||||
|
<td><span class="color-swatch" style="background:#C9918B;"></span>Dusty Rose</td>
|
||||||
|
<td><code>C9918B</code></td>
|
||||||
|
<td><span class="status-badge status-planned">Planned</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>T07</td>
|
||||||
|
<td>CREMA</td>
|
||||||
|
<td><span class="color-swatch" style="background:#2C1A12;"></span>Espresso</td>
|
||||||
|
<td><code>2C1A12</code></td>
|
||||||
|
<td><span class="status-badge status-planned">Planned</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>T08</td>
|
||||||
|
<td>PULL</td>
|
||||||
|
<td><span class="color-swatch" style="background:#B87333;"></span>Copper</td>
|
||||||
|
<td><code>B87333</code></td>
|
||||||
|
<td><span class="status-badge status-planned">Planned</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>T09</td>
|
||||||
|
<td>BEAN</td>
|
||||||
|
<td><span class="color-swatch" style="background:#6B7F99;"></span>Slate Blue</td>
|
||||||
|
<td><code>6B7F99</code></td>
|
||||||
|
<td><span class="status-badge status-planned">Planned</span></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Folder Structure</h2>
|
||||||
|
<div class="folder-tree">
|
||||||
|
SnS Hospitality Group LLC/<br>
|
||||||
|
├── T00-09-COMMON/ ← shared across ALL trailers<br>
|
||||||
|
│ ├── Legal/<br>
|
||||||
|
│ ├── Marketing/<br>
|
||||||
|
│ ├── Ops/<br>
|
||||||
|
│ ├── Research/<br>
|
||||||
|
│ └── Buildout/<br>
|
||||||
|
│<br>
|
||||||
|
├── T00-DRIP/ ← Trailer #1 specific<br>
|
||||||
|
│ ├── Vehicle/ (VIN, title, plate, registration)<br>
|
||||||
|
│ ├── Network/ (router, POS, tablet, IPs)<br>
|
||||||
|
│ ├── Equipment/ (serials, warranties, manuals)<br>
|
||||||
|
│ ├── Location/ (lease, site photos, parking map)<br>
|
||||||
|
│ └── Tools/ (inventory, maintenance log)<br>
|
||||||
|
│<br>
|
||||||
|
├── T01-ROAST/ ← future<br>
|
||||||
|
├── T02-BLOOM/ ← future<br>
|
||||||
|
└── ...
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Security Handoff</h2>
|
||||||
|
<div class="section-card">
|
||||||
|
<p>The hex suffix (<code>-4B2E20</code>) is appended to a trailer's ID when
|
||||||
|
<strong>SNS Networking</strong> has completed:</p>
|
||||||
|
<ol style="margin: 0.75rem 0 0 1.5rem;">
|
||||||
|
<li>Network hardware installed (router, AP, firewall)</li>
|
||||||
|
<li>POS system configured and hardened</li>
|
||||||
|
<li>Network segmented (customer WiFi isolated from POS/ops)</li>
|
||||||
|
<li>Remote management access verified</li>
|
||||||
|
<li>Sign-off documented</li>
|
||||||
|
</ol>
|
||||||
|
<div class="note">
|
||||||
|
Until handoff, the trailer operates as <code>T##-CODENAME</code> only.
|
||||||
|
This maintains a clean boundary between Hospitality operations (Kiowa)
|
||||||
|
and technology infrastructure (SNS Networking).
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Key Links</h2>
|
||||||
|
<div class="section-card">
|
||||||
|
<table>
|
||||||
|
<tr><th>Resource</th><th>URL</th></tr>
|
||||||
|
<tr><td>Project Management (Plane)</td><td><a href="https://plane.snsnetlabs.com/shg/">plane.snsnetlabs.com/shg</a></td></tr>
|
||||||
|
<tr><td>File Storage (Google Drive)</td><td>SnS Hospitality Group LLC shared folder</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
SnS Hospitality Group LLC · A division of SnS Network Solutions Holdings LLC<br>
|
||||||
|
Sam James (85%) · Kiowa Scott (15%)<br><br>
|
||||||
|
<em>Good Coffee. Real Connections. Better Every Day.</em>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,278 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>T00-DRIP Funding Research — SnS Hospitality Group</title>
|
||||||
|
<style>
|
||||||
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||||
|
body { font-family: 'Montserrat', 'Segoe UI', sans-serif; background: #F7EFE6; color: #4B2E20; line-height: 1.6; padding: 2rem; max-width: 1100px; margin: 0 auto; }
|
||||||
|
h1, h2, h3 { font-family: 'Playfair Display', Georgia, serif; }
|
||||||
|
h1 { font-size: 2rem; text-align: center; margin-bottom: 0.25rem; }
|
||||||
|
.subtitle { text-align: center; color: #A78A7A; margin-bottom: 2rem; font-size: 0.95rem; }
|
||||||
|
h2 { font-size: 1.3rem; margin: 2.5rem 0 0.75rem; padding-bottom: 0.3rem; border-bottom: 2px solid #D4AF37; }
|
||||||
|
h3 { font-size: 1.05rem; margin: 1.5rem 0 0.5rem; color: #4B2E20; }
|
||||||
|
.card { background: white; border-radius: 8px; padding: 1.25rem 1.5rem; margin: 1rem 0; box-shadow: 0 2px 8px rgba(75,46,32,0.08); }
|
||||||
|
.card h3 { margin-top: 0; }
|
||||||
|
table { width: 100%; border-collapse: collapse; margin: 0.75rem 0; font-size: 0.88rem; }
|
||||||
|
th, td { padding: 0.4rem 0.6rem; text-align: left; border-bottom: 1px solid #E7B4B8; }
|
||||||
|
th { background: #4B2E20; color: #F7EFE6; font-weight: 600; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.5px; }
|
||||||
|
a { color: #D4AF37; text-decoration: none; font-weight: 500; }
|
||||||
|
a:hover { text-decoration: underline; }
|
||||||
|
.tag { display: inline-block; padding: 0.15rem 0.5rem; border-radius: 10px; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; margin-right: 4px; }
|
||||||
|
.tag-grant { background: #A3B18A; color: white; }
|
||||||
|
.tag-loan { background: #E7B4B8; color: #4B2E20; }
|
||||||
|
.tag-tax { background: #D4AF37; color: white; }
|
||||||
|
.tag-program { background: #6B7F99; color: white; }
|
||||||
|
.note { background: rgba(212,175,55,0.12); border-left: 3px solid #D4AF37; padding: 0.75rem 1rem; margin: 1rem 0; font-size: 0.9rem; }
|
||||||
|
.warning { background: rgba(200,50,50,0.08); border-left: 3px solid #c83232; padding: 0.75rem 1rem; margin: 1rem 0; font-size: 0.9rem; }
|
||||||
|
.strategy { background: #4B2E20; color: #F7EFE6; border-radius: 8px; padding: 1.5rem; margin: 1.5rem 0; }
|
||||||
|
.strategy h2 { color: #D4AF37; border-bottom-color: #D4AF37; }
|
||||||
|
.strategy ol { margin: 1rem 0 0 1.5rem; }
|
||||||
|
.strategy li { margin-bottom: 0.75rem; }
|
||||||
|
footer { text-align: center; margin-top: 3rem; padding-top: 1rem; border-top: 1px solid #E7B4B8; color: #A78A7A; font-size: 0.8rem; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<h1>Funding Research — T00-DRIP</h1>
|
||||||
|
<p class="subtitle">Grants, loans, tax incentives, and development programs for The Daily Pour<br>
|
||||||
|
Researched: August 5, 2026 | South Bend / NW Indiana / St. Joseph County</p>
|
||||||
|
|
||||||
|
<div class="warning">
|
||||||
|
<strong>⚠️ Note (July 2026):</strong> Indiana Executive Order 26-17 (issued July 14, 2026) suspended the state's
|
||||||
|
MBE/WBE diversity programs. Federal programs (SBA, USDA), city-level programs (South Bend), and nonprofit
|
||||||
|
lenders (Bankable, Flagship) are <strong>unaffected</strong>.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Direct Grants (Free Money — No Repayment)</h2>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>1. South Bend Opportunity Fund <span class="tag tag-grant">Grant</span><span class="tag tag-loan">Loan</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Amount</th><td>Loans $1,000–$30,000 (below-market interest) + free business coaching/mentorship</td></tr>
|
||||||
|
<tr><th>Eligibility</th><td>Business located in South Bend, revenues under $300,000/yr prior year</td></tr>
|
||||||
|
<tr><th>Partners</th><td>1st Source Bank + North Central Indiana Small Business Development Center</td></tr>
|
||||||
|
<tr><th>Apply</th><td><a href="https://isbdc.ecenterdirect.com/signup" target="_blank">isbdc.ecenterdirect.com/signup</a></td></tr>
|
||||||
|
<tr><th>Info</th><td><a href="https://southbendin.gov/opportunityfund/" target="_blank">southbendin.gov/opportunityfund</a></td></tr>
|
||||||
|
<tr><th>Why apply</th><td>Pre-revenue startup in South Bend = perfect fit. Free coaching alone is worth it.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>2. <s>Flagstar Bank BIPOC Grant</s> <span class="tag tag-grant" style="background:#dc2626;">CLOSED</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Amount</th><td><s>$5,000 per recipient (35 grants from $175,000 pool)</s></td></tr>
|
||||||
|
<tr><th>Status</th><td><strong>PROGRAM COMPLETED.</strong> All 35 awards already distributed. No new applications accepted.</td></tr>
|
||||||
|
<tr><th>Info</th><td><a href="https://grantable.co/grants/flagstar-bank-s-black-indigenous-and-people-of-color-bipoc-grant-86b5a0459546" target="_blank">Flagstar BIPOC Grant details</a></td></tr>
|
||||||
|
<tr><th>Action</th><td>Monitor Indiana Black Expo for future rounds. Follow Flagstar for other BIPOC programs.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>3. <s>USDA Business Builder Award</s> <span class="tag tag-grant" style="background:#dc2626;">TERMINATED</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Amount</th><td><s>Up to $100,000 direct financial assistance</s></td></tr>
|
||||||
|
<tr><th>Status</th><td><strong>PROGRAM TERMINATED July 15, 2025.</strong> USDA Secretary Rollins killed the Regional Food Business Centers program. No new Business Builder awards being issued.</td></tr>
|
||||||
|
<tr><th>Source</th><td><a href="https://www.ams.usda.gov/press-release/termination-regional-food-business-centers-programs" target="_blank">USDA termination announcement</a></td></tr>
|
||||||
|
<tr><th>Our center</th><td>Great Lakes Midwest RFBC (Michigan State, covered Indiana) — shut down.</td></tr>
|
||||||
|
</table>
|
||||||
|
<tr><th>Why apply</th><td>Coffee trailer = food business. Up to $100k grant covers nearly the entire buildout. Check application windows.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Solar & Energy Grants (Power System Funding)</h2>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>4. USDA REAP — Rural Energy for America Program <span class="tag tag-grant">Grant</span><span class="tag tag-loan">Loan</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Amount</th><td>Grants up to 50% of renewable energy project cost + guaranteed loans</td></tr>
|
||||||
|
<tr><th>Eligibility</th><td>Rural small business (check USDA eligibility map — areas outside cities of 50,000+). Some South Bend-adjacent areas qualify.</td></tr>
|
||||||
|
<tr><th>Covers</th><td>Solar panels, battery storage, energy-efficient equipment upgrades</td></tr>
|
||||||
|
<tr><th>Info</th><td><a href="https://www.rd.usda.gov/programs-services/energy-programs/rural-energy-america-program-renewable-energy-systems-energy-efficiency-improvement-grants-2" target="_blank">USDA REAP Indiana</a></td></tr>
|
||||||
|
<tr><th>Why apply</th><td>Could fund 50% of your solar/battery system ($750-1,000+ back). If trailer parks in a rural-eligible lot (smaller towns outside SB proper), this is free money for your power setup.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>5. Indiana Solar Tax Exemptions <span class="tag tag-tax">Tax Break</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Benefits</th><td>
|
||||||
|
• 100% property tax exemption on solar installations<br>
|
||||||
|
• 7% state sales tax exemption on solar equipment<br>
|
||||||
|
• 30% federal commercial solar ITC (Investment Tax Credit) — your LLC qualifies
|
||||||
|
</td></tr>
|
||||||
|
<tr><th>Eligibility</th><td>Any Indiana business installing solar. LLC structure qualifies for commercial ITC.</td></tr>
|
||||||
|
<tr><th>Info</th><td><a href="https://www.surgepv.com/blog/solar-incentives-indiana" target="_blank">Indiana Solar Incentives 2026</a></td></tr>
|
||||||
|
<tr><th>Why use</th><td>If you add solar to the trailer, you get 30% back on federal taxes + no property/sales tax on the equipment. Stack with REAP for potentially 80% covered.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Minority-Specific Loans (Low/Zero Interest)</h2>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>6. Bankable — Indiana Black-Owned Business Loan Fund <span class="tag tag-loan">Loan</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Amount</th><td>Up to $50,000 (low interest, some interest-free)</td></tr>
|
||||||
|
<tr><th>Eligibility</th><td>Indiana-based, Black-owned, unable to secure traditional bank loan</td></tr>
|
||||||
|
<tr><th>Extras</th><td>Free business development resources + Black Chamber of Commerce membership</td></tr>
|
||||||
|
<tr><th>Apply</th><td><a href="https://bankable.org/loans/" target="_blank">bankable.org/loans</a></td></tr>
|
||||||
|
<tr><th>Info</th><td><a href="https://www.bankable.org/blog-posts/indiana-black-owned-business-loan-fund" target="_blank">Bankable Black-Owned Fund announcement</a></td></tr>
|
||||||
|
<tr><th>Why apply</th><td>Certified SBA microlender. Low barrier, designed for businesses like yours that are pre-traditional-bank. Good supplement or bridge to SBA loan.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>7. Flagship Enterprise Capital — Indiana Black Owned Business Fund <span class="tag tag-loan">Loan</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Amount</th><td>Up to $350,000 (through Bankable partnership)</td></tr>
|
||||||
|
<tr><th>Benefits</th><td>Lower rates, no fees, additional technical assistance, memberships to entrepreneurial support orgs</td></tr>
|
||||||
|
<tr><th>Info</th><td><a href="https://www.flagshipenterprisecapital.org/" target="_blank">flagshipenterprisecapital.org</a></td></tr>
|
||||||
|
<tr><th>Why apply</th><td>Larger loan option if SBA falls through or you need more capital. Same Black-owned qualification as Bankable.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>8. IEDC Legend Fund (SSBCI) <span class="tag tag-loan">Loan</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Amount</th><td>Part of $29M fund distributed through mission-driven local lenders</td></tr>
|
||||||
|
<tr><th>Eligibility</th><td>Indiana small business, historically underserved community</td></tr>
|
||||||
|
<tr><th>Info</th><td><a href="https://iedc.in.gov/ssbci" target="_blank">iedc.in.gov/ssbci</a></td></tr>
|
||||||
|
<tr><th>Why apply</th><td>State-backed capital flowing through local CDFIs. You qualify on multiple fronts (minority-owned, pre-revenue startup). Ask Bankable — they may be a Legend Fund distributor.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>City Programs (South Bend Specific)</h2>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>9. South Bend MWBE Inclusion Program <span class="tag tag-program">Program</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>What</th><td>Helps minority/women-owned businesses access City contracting + procurement opportunities</td></tr>
|
||||||
|
<tr><th>Info</th><td><a href="https://southbendin.gov/department/minority-and-women-owned-business-enterprise-mwbe-inclusion-program/" target="_blank">southbendin.gov — MWBE Program</a></td></tr>
|
||||||
|
<tr><th>Why join</th><td>Gets you in the city's vendor system + connected to other minority business owners. More for service/contracting but builds credibility and network.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>10. South Bend Small Business Assistance Suite (SBAS) <span class="tag tag-program">Program</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>What</th><td>Free cohort-based business development program — strengthens back-office systems, operational readiness, prepares for funding + public-sector contracting</td></tr>
|
||||||
|
<tr><th>Cost</th><td>Free to accepted participants</td></tr>
|
||||||
|
<tr><th>Info</th><td><a href="https://southbendin.gov/department/mayors-office/diversity/business-development/" target="_blank">southbendin.gov — Office of Diversity Business Development</a></td></tr>
|
||||||
|
<tr><th>Why join</th><td>Free coaching + structure + credibility. Good to do while building out T00-DRIP. Makes future grant applications stronger.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Development Zones (Tax Incentives by Location)</h2>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>11. Indiana Enterprise Zones <span class="tag tag-tax">Tax Break</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Benefits</th><td>
|
||||||
|
• Employee tax deduction<br>
|
||||||
|
• Employment expense credit<br>
|
||||||
|
• Loan interest credit<br>
|
||||||
|
• Investment cost credit
|
||||||
|
</td></tr>
|
||||||
|
<tr><th>Eligibility</th><td>Business operating within a designated Enterprise Zone</td></tr>
|
||||||
|
<tr><th>Info</th><td><a href="https://www.aiez.org/" target="_blank">aiez.org — Association of Indiana Enterprise Zones</a></td></tr>
|
||||||
|
<tr><th>Why it matters</th><td>If T00-DRIP parks in an Enterprise Zone (check South Bend's zone map), you get state tax credits just for operating there. Factor this into location scouting.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3>12. Indiana Opportunity Zones <span class="tag tag-tax">Tax Break</span></h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Benefits</th><td>Federal capital gains tax deferral/reduction for investments in economically distressed areas</td></tr>
|
||||||
|
<tr><th>Coverage</th><td>156 zones in Indiana — several in St. Joseph County / South Bend</td></tr>
|
||||||
|
<tr><th>Info</th><td><a href="https://www.iedc.in.gov/program/indiana-opportunity-zones/home" target="_blank">iedc.in.gov — Opportunity Zones</a></td></tr>
|
||||||
|
<tr><th>Why it matters</th><td>More relevant for investors or if you have capital gains to defer. Worth knowing for future expansion or if someone invests in your trailers.</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Additional Resources</h2>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<table>
|
||||||
|
<tr><th>Resource</th><th>URL</th><th>Notes</th></tr>
|
||||||
|
<tr><td>Indiana grants for Black-owned businesses (curated list)</td><td><a href="https://indyblackbusinesses.com/grants" target="_blank">indyblackbusinesses.com/grants</a></td><td>Updated regularly, browse all</td></tr>
|
||||||
|
<tr><td>Women & Minority Business Indiana</td><td><a href="https://www.womenandminoritybusiness.org/indiana-free-grants-and-loans-for-minority-and-women-owned-businesses/" target="_blank">womenandminoritybusiness.org</a></td><td>Aggregated grants, loans, counseling</td></tr>
|
||||||
|
<tr><td>Elevate Ventures (Indiana VC/grants)</td><td><a href="https://elevateventures.com/minority-small-business-grants/" target="_blank">elevateventures.com</a></td><td>High-growth focused — more for tech, but has minority programs</td></tr>
|
||||||
|
<tr><td>South Bend Incentives & Grants page</td><td><a href="https://www.southbendin.gov/department/community-investment/business-development/incentives-and-grants/" target="_blank">southbendin.gov — incentives</a></td><td>Full list of city programs</td></tr>
|
||||||
|
<tr><td>USDA all Indiana programs</td><td><a href="https://www.rd.usda.gov/programs-services/all-programs/in" target="_blank">rd.usda.gov — Indiana</a></td><td>Rural business, energy, community programs</td></tr>
|
||||||
|
<tr><td>IN.gov MWBE (state level — currently suspended)</td><td><a href="https://www.in.gov/idoa/mwbe/minority-and-womens-business-enterprises/" target="_blank">in.gov/idoa/mwbe</a></td><td>Suspended by EO 26-17, monitor for reinstatement</td></tr>
|
||||||
|
<tr><td>ICSSBM Grant Program (Indiana Commission)</td><td><a href="http://www.in.gov/icssbm/about-us/icssbm-grant-program" target="_blank">in.gov/icssbm</a></td><td>Partners with grassroots orgs to reduce barriers</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="strategy">
|
||||||
|
<h2>Recommended Funding Strategy</h2>
|
||||||
|
<p style="margin-bottom:1rem; color:#E7B4B8;">How to stack these programs for maximum benefit — do them in this order:</p>
|
||||||
|
<ol>
|
||||||
|
<li><strong>Week 1-2: File LLC + Get EIN</strong><br>
|
||||||
|
You need the entity to exist before any application. File SnS Hospitality Group LLC on INBiz ($95), get EIN same day on IRS.gov.</li>
|
||||||
|
<li><strong>Week 2-3: Apply to South Bend Opportunity Fund</strong><br>
|
||||||
|
Easiest entry point. Gets you coaching + access to $1-30k loan. The coaching makes all other applications stronger. <a href="https://isbdc.ecenterdirect.com/signup" style="color:#D4AF37;">Apply here</a>.</li>
|
||||||
|
<li><strong>Week 2-3: Apply to Bankable Black-Owned Fund</strong><br>
|
||||||
|
Up to $50k at low interest. Can run in parallel with Opportunity Fund. These are complementary, not competing. <a href="https://bankable.org/loans/" style="color:#D4AF37;">Apply here</a>.</li>
|
||||||
|
<li><strong>Week 3-4: <s>Submit Flagstar BIPOC Grant</s></strong> — CLOSED (all awards distributed)<br>
|
||||||
|
Monitor Indiana Black Expo + Flagstar for future rounds.</li>
|
||||||
|
<li><strong>Week 4-6: Apply for SBA Loan (traditional)</strong><br>
|
||||||
|
With LLC formed, EIN in hand, business plan written, and Opportunity Fund coaching on your resume — you're a stronger applicant. Target $65-80k.</li>
|
||||||
|
<li><strong><s>Month 2-3: USDA Business Builder</s></strong> — TERMINATED (July 2025, program killed by current admin)<br>
|
||||||
|
No longer available. Regional Food Business Centers shut down.</li>
|
||||||
|
<li><strong>Month 3+: REAP Solar Grant (when ready to install)</strong><br>
|
||||||
|
Apply once you know where T00-DRIP will park (need to confirm rural eligibility). Covers up to 50% of your solar/battery system. Stack with the 30% federal ITC for up to 80% covered.</li>
|
||||||
|
<li><strong>Ongoing: Location scouting in Enterprise/Opportunity Zones</strong><br>
|
||||||
|
Tell Kiowa to cross-reference her location list with the Enterprise Zone map. Parking in a zone = automatic tax credits on top of everything else.</li>
|
||||||
|
</ol>
|
||||||
|
<div class="note" style="margin-top:1.5rem; background: rgba(255,255,255,0.1); border-left-color: #D4AF37;">
|
||||||
|
<strong>Total potential capital stack (updated August 2026):</strong><br>
|
||||||
|
• Opportunity Fund: $30k (loan)<br>
|
||||||
|
• Bankable: $50k (loan)<br>
|
||||||
|
• <s>Flagstar: $5k (grant)</s> — CLOSED<br>
|
||||||
|
• SBA: $65-80k (loan)<br>
|
||||||
|
• <s>USDA Business Builder: up to $100k (grant)</s> — TERMINATED<br>
|
||||||
|
• REAP + ITC: 80% of solar costs (grant + tax credit)<br>
|
||||||
|
• EASSI (South Bend): solar/energy grant (inquiry sent)<br><br>
|
||||||
|
<strong>Realistic target: $80-160k in loans + solar grants covering power system.</strong><br>
|
||||||
|
Focus: Opportunity Fund coaching → Bankable → SBA. Solar grants after location secured.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
SnS Hospitality Group LLC — T00-DRIP Funding Research<br>
|
||||||
|
Researched August 5, 2026 | Review quarterly for new application windows<br><br>
|
||||||
|
<em>Good Coffee. Great Vibes. On Purpose.</em>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<h2>Message to Team (Kiowa)</h2>
|
||||||
|
<div class="card">
|
||||||
|
<p><strong>From:</strong> Sam | <strong>Date:</strong> August 5, 2026</p>
|
||||||
|
<hr style="border:none; border-top:1px solid #E7B4B8; margin:0.75rem 0;">
|
||||||
|
<p>Hey Kiowa,</p>
|
||||||
|
<p>I'm working on getting us funded. I put together a full research doc on every grant, loan, and program we qualify for — it's in the shared Drive.</p>
|
||||||
|
<p><strong>Where to find it:</strong></p>
|
||||||
|
<ul style="margin:0.5rem 0 0.5rem 1.5rem;">
|
||||||
|
<li>Legal folder: <a href="https://drive.google.com/drive/folders/1kp6q5v6UcJAraaiRncsMg60KV3PPjQoj?usp=drive_link" target="_blank">Google Drive — Legal</a></li>
|
||||||
|
<li>A copy is also in the Research folder</li>
|
||||||
|
</ul>
|
||||||
|
<p>I sent you an email giving you access to the parent folder so you can see everything.</p>
|
||||||
|
<p><strong>My focus right now:</strong> Task 1 from the funding strategy — filing the LLC and getting the EIN. Once that's done, we can start submitting applications.</p>
|
||||||
|
<p><strong>Your part (when ready):</strong> Start thinking about locations. Some areas in South Bend are in "Enterprise Zones" which give us automatic tax credits just for operating there. When you're scouting parking lots, I'll share the zone map so we can cross-reference.</p>
|
||||||
|
<p>You'll have visibility of all deliverables in the shared Drive as things get filed.</p>
|
||||||
|
<p>— Sam</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
SnS Hospitality Group LLC — T00-DRIP Funding Research<br>
|
||||||
|
Researched August 5, 2026 | Review quarterly for new application windows<br><br>
|
||||||
|
<em>Good Coffee. Great Vibes. On Purpose.</em>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,84 @@
|
|||||||
|
Category,Item,Size/Variant,Qty Needed (Weekly),Unit,Have It?,Notes (Savannah fill in)
|
||||||
|
COFFEE BEANS,Espresso blend (whole bean),5 lb bag,3,bags,,Bendix Coffee Roasters (local) or preferred roaster
|
||||||
|
COFFEE BEANS,Decaf espresso blend (whole bean),5 lb bag,1,bags,,
|
||||||
|
COFFEE BEANS,Drip coffee blend (whole bean),5 lb bag,2,bags,,For batch brewer
|
||||||
|
COFFEE BEANS,Flavored blend — seasonal (whole bean),5 lb bag,1,bags,,Optional — hazelnut/vanilla/pumpkin spice
|
||||||
|
TEA,Black tea bags (English Breakfast),box of 100,1,box,,
|
||||||
|
TEA,Green tea bags,box of 100,1,box,,
|
||||||
|
TEA,Chai tea bags or concentrate,box of 100 / half gallon,1,box,,Bags or liquid concentrate?
|
||||||
|
TEA,Herbal tea variety (caffeine-free),box of 100,1,box,,Chamomile/peppermint/fruit
|
||||||
|
TEA,Matcha powder (ceremonial or culinary),8 oz tin,1,tin,,For matcha lattes
|
||||||
|
MILK & DAIRY,Whole milk,gallon,14,gallons,,~2 gal/day. Refrigerated.
|
||||||
|
MILK & DAIRY,2% milk,gallon,4,gallons,,For customers who prefer lighter
|
||||||
|
MILK & DAIRY,Oat milk (barista edition),half gallon,10,cartons,,Oatly Barista or similar — steams/froths well
|
||||||
|
MILK & DAIRY,Almond milk (unsweetened),half gallon,4,cartons,,
|
||||||
|
MILK & DAIRY,Coconut milk,half gallon,2,cartons,,
|
||||||
|
MILK & DAIRY,Heavy cream / half & half,quart,6,quarts,,For breves and whipped cream
|
||||||
|
MILK & DAIRY,Whipped cream (canned or dispenser),can / ISI chargers,6,cans,,Or make fresh with ISI dispenser + N2O chargers
|
||||||
|
SYRUPS & FLAVORS,Vanilla syrup,750ml bottle,3,bottles,,Torani or Monin
|
||||||
|
SYRUPS & FLAVORS,Caramel syrup,750ml bottle,3,bottles,,
|
||||||
|
SYRUPS & FLAVORS,Hazelnut syrup,750ml bottle,2,bottles,,
|
||||||
|
SYRUPS & FLAVORS,Mocha / chocolate sauce,64 oz bottle,2,bottles,,Ghirardelli or Torani
|
||||||
|
SYRUPS & FLAVORS,White mocha sauce,64 oz bottle,1,bottle,,
|
||||||
|
SYRUPS & FLAVORS,Lavender syrup,750ml bottle,1,bottle,,Seasonal/specialty
|
||||||
|
SYRUPS & FLAVORS,Pumpkin spice sauce,64 oz bottle,1,bottle,,Seasonal (fall)
|
||||||
|
SYRUPS & FLAVORS,Caramel drizzle (thick),squeeze bottle,2,bottles,,For cup decoration
|
||||||
|
SYRUPS & FLAVORS,Sugar-free vanilla syrup,750ml bottle,1,bottle,,
|
||||||
|
SYRUPS & FLAVORS,Sugar-free caramel syrup,750ml bottle,1,bottle,,
|
||||||
|
SWEETENERS,Granulated sugar,4 lb bag,1,bag,,For pour-over station / sweetener bar
|
||||||
|
SWEETENERS,Raw sugar packets,box of 200,1,box,,
|
||||||
|
SWEETENERS,Splenda packets,box of 200,1,box,,
|
||||||
|
SWEETENERS,Stevia packets,box of 200,1,box,,
|
||||||
|
SWEETENERS,Honey (squeeze bottle),12 oz,3,bottles,,For honey lattes and tea
|
||||||
|
SWEETENERS,Agave syrup,squeeze bottle,1,bottle,,
|
||||||
|
TOPPINGS & EXTRAS,Cinnamon powder (shaker),large shaker,1,shaker,,For cappuccinos / lattes
|
||||||
|
TOPPINGS & EXTRAS,Cocoa powder (unsweetened),1 lb,1,container,,Dusting + mocha
|
||||||
|
TOPPINGS & EXTRAS,Nutmeg (ground),small shaker,1,shaker,,
|
||||||
|
TOPPINGS & EXTRAS,Vanilla powder,small shaker,1,shaker,,
|
||||||
|
TOPPINGS & EXTRAS,Chocolate chips / curls,bag,1,bag,,For frappuccinos / toppings
|
||||||
|
TOPPINGS & EXTRAS,Caramel bits / toffee pieces,bag,1,bag,,
|
||||||
|
FROZEN & BLENDED,Ice (bagged or machine-made),10 lb bag,5,bags,,Or from ice maker — supplement with bags during rush
|
||||||
|
FROZEN & BLENDED,Frozen fruit (strawberry),5 lb bag,1,bag,,Smoothies / blended drinks
|
||||||
|
FROZEN & BLENDED,Frozen fruit (mango),5 lb bag,1,bag,,
|
||||||
|
FROZEN & BLENDED,Frozen fruit (banana),5 lb bag,1,bag,,
|
||||||
|
FROZEN & BLENDED,Frappe base / smoothie powder,3 lb bag,1,bag,,Optional — or use ice cream + espresso
|
||||||
|
BAKED GOODS,Muffins (assorted),dozen,3,dozen,,Local bakery or wholesale (GFS/Sysco)
|
||||||
|
BAKED GOODS,Scones,dozen,2,dozen,,
|
||||||
|
BAKED GOODS,Croissants,dozen,2,dozen,,
|
||||||
|
BAKED GOODS,Cookies (assorted),dozen,2,dozen,,
|
||||||
|
BAKED GOODS,Banana bread / loaf cake,loaf,2,loaves,,Slice and sell individually
|
||||||
|
BAKED GOODS,Bagels (assorted),dozen,2,dozen,,
|
||||||
|
BAKED GOODS,Cream cheese packets,individual,24,packets,,For bagels
|
||||||
|
CUPS & LIDS,Hot cups 12 oz,sleeve of 50,4,sleeves,,Branded if available
|
||||||
|
CUPS & LIDS,Hot cups 16 oz,sleeve of 50,6,sleeves,,Most popular size
|
||||||
|
CUPS & LIDS,Hot cups 20 oz,sleeve of 50,3,sleeves,,
|
||||||
|
CUPS & LIDS,Hot cup lids (fits 12/16/20),sleeve of 50,13,sleeves,,Match cup count
|
||||||
|
CUPS & LIDS,Cold cups 16 oz (clear plastic),sleeve of 50,4,sleeves,,For iced drinks / smoothies
|
||||||
|
CUPS & LIDS,Cold cups 24 oz (clear plastic),sleeve of 50,4,sleeves,,
|
||||||
|
CUPS & LIDS,Cold cup lids (dome — fits 16/24),sleeve of 50,8,sleeves,,Dome for whipped cream
|
||||||
|
CUPS & LIDS,Cold cup flat lids,sleeve of 50,4,sleeves,,For no-whip iced drinks
|
||||||
|
CUPS & LIDS,Cup sleeves / java jackets,sleeve of 100,4,sleeves,,Branded if available
|
||||||
|
STRAWS & STIRRERS,Straws (paper or compostable),box of 200,2,boxes,,
|
||||||
|
STRAWS & STIRRERS,Wide/boba straws (for smoothies),box of 100,1,box,,
|
||||||
|
STRAWS & STIRRERS,Stir sticks / wooden stirrers,box of 500,1,box,,
|
||||||
|
NAPKINS & UTENSILS,Napkins (beverage size),pack of 500,2,packs,,
|
||||||
|
NAPKINS & UTENSILS,Spoons (plastic or wooden),box of 200,1,box,,For stirring / tasting
|
||||||
|
NAPKINS & UTENSILS,Knives (plastic — for bagels/baked goods),box of 100,1,box,,
|
||||||
|
CARRIERS & BAGS,Cup carriers (2-cup and 4-cup),bundle of 50,2,bundles,,For multi-drink orders
|
||||||
|
CARRIERS & BAGS,Paper bags (small — pastry size),pack of 100,2,packs,,
|
||||||
|
CARRIERS & BAGS,Paper bags (medium — multiple items),pack of 50,1,pack,,
|
||||||
|
CLEANING & SANITIZING,Sanitizer spray (food-safe),bottle,2,bottles,,
|
||||||
|
CLEANING & SANITIZING,Sanitizer wipes,canister,2,canisters,,
|
||||||
|
CLEANING & SANITIZING,Dish soap,bottle,1,bottle,,For 2-comp sink
|
||||||
|
CLEANING & SANITIZING,Bar towels / rags,pack of 12,2,packs,,
|
||||||
|
CLEANING & SANITIZING,Sponges,pack of 6,1,pack,,
|
||||||
|
CLEANING & SANITIZING,Trash bags (13 gallon),roll of 50,1,roll,,
|
||||||
|
CLEANING & SANITIZING,Trash bags (33 gallon),roll of 20,1,roll,,
|
||||||
|
CLEANING & SANITIZING,Hand soap (dispenser refill),bottle,1,bottle,,For hand-wash sink
|
||||||
|
CLEANING & SANITIZING,Gloves (nitrile — M/L),box of 100,1,box,,Food prep
|
||||||
|
CLEANING & SANITIZING,Aprons,each,3,each,,Staff uniform
|
||||||
|
CLEANING & SANITIZING,Hair nets or hats,box of 50,1,box,,Health code
|
||||||
|
CONDIMENT STATION,Half & half single-serve creamers,box of 100,2,boxes,,If offering self-serve station
|
||||||
|
CONDIMENT STATION,Sugar packet caddy / organizer,each,1,each,,
|
||||||
|
CONDIMENT STATION,Stir stick dispenser,each,1,each,,
|
||||||
|
CONDIMENT STATION,Napkin dispenser,each,1,each,,
|
||||||
|
@ -1,71 +1,73 @@
|
|||||||
Category,Item,Description,Qty,Est. Unit Price,Est. Total,Priority,Link,Notes,
|
Category,Item,Description,Qty,Est. Unit Price,Est. Total,Priority,Link,Notes
|
||||||
Trailer,Enclosed Cargo Trailer (8.5x24),Used or new 8.5ft x 24ft enclosed trailer for drive-through conversion,1,"$7,500 ","$7,500 ",Critical,https://www.trailersmidwest.com/,Trailers Midwest — Elkhart IN (~15 mi from South Bend). Also: I-69 Trailer Center (Fort Wayne) or indianatrailersales.net. New 8.5x24 ~$7745-12000.,
|
Trailer,Enclosed Cargo Trailer (8x14-16),Used or new 8ft x 14-16ft enclosed trailer for drive-through conversion,1,"$7,500","$7,500",Critical,https://www.trailersmidwest.com/,"Trailers Midwest — Elkhart IN (~15 mi from South Bend). Also: I-69 Trailer Center (Fort Wayne) or indianatrailersales.net. Range $6000-9000."
|
||||||
Trailer,Trailer Buildout (electrical + plumbing + counters + window),Custom interior conversion — wiring + outlets + countertop + serving window cut (8.5x24),1,"$5,000 ","$5,000 ",Critical,,Local builder or DIY. Get quotes from trailer conversion shops in Elkhart (trailer capital of the world — dozens within 15 mi).,
|
Trailer,Trailer Buildout (electrical + plumbing + counters + window),Custom interior conversion — wiring + outlets + countertop + serving window cut,1,"$10,000","$10,000",Critical,,"Local builder or DIY. Get quotes from trailer conversion shops in Elkhart (trailer capital of the world — dozens within 15 mi)."
|
||||||
Coffee Equipment,Commercial Espresso Machine (2-group),Dual boiler or heat exchanger for high-volume service,1,"$3,500 ","$3,500 ",Critical,https://www.amazon.com/Commercial-Espresso-Machines-Coffee-Makers/b?node=5315101011,Amazon range $2150-$7950. Browse category for options. Also check procoffeegear.com.,
|
Coffee Equipment,Nuova Simonelli Appia Life 2-Group,Commercial 2-group espresso machine — high-volume workhorse,1,"$9,000","$9,000",Critical,https://www.nuovasimonelli.it/en/products/appia-life,"Industry standard for mobile/small cafe. Reliable + serviceable."
|
||||||
Coffee Equipment,Commercial Coffee Grinder (espresso burr),High-speed burr grinder for on-demand espresso,1,$350 ,$350 ,Critical,https://www.amazon.com/Commercial-Electric-Semi-auto-Espresso-Grinding/dp/B09CZ4YXJL,Commercial semi-auto burr mill ~$250-500.,
|
Coffee Equipment,Eureka Atom 75,Commercial espresso burr grinder — 75mm flat burrs + stepless adjustment,1,"$2,000","$2,000",Critical,https://www.amazon.com/Eureka-Atom-75/s?k=eureka+atom+75,"Fast grind speed, low retention. Pairs with Appia Life."
|
||||||
Coffee Equipment,Commercial Blender (smoothies/frappes),2200W soundproof commercial blender for ice + smoothies,2,$160 ,$320 ,High,https://www.amazon.com/Commercial-Smoothies-Soundproof-Stainless-Restaurant/dp/B0D46F93DS,Need 2 for speed during rush. ~$130-200 each.,
|
Coffee Equipment,Commercial Blender (smoothies/frappes),2200W soundproof commercial blender for ice + smoothies,2,$160,$320,High,https://www.amazon.com/Commercial-Smoothies-Soundproof-Stainless-Restaurant/dp/B0D46F93DS,"Need 2 for speed during rush. ~$130-200 each."
|
||||||
Coffee Equipment,Drip Coffee Brewer (batch),Commercial batch brewer for standard drip coffee,1,$250 ,$250 ,High,https://www.amazon.com/commercial-coffee-brewer/s?k=commercial+coffee+brewer,Bunn or similar airpot style. Search Amazon for options.,
|
Coffee Equipment,Drip Coffee Brewer (batch),Commercial batch brewer for standard drip coffee,1,$250,$250,High,https://www.amazon.com/commercial-coffee-brewer/s?k=commercial+coffee+brewer,"Bunn or similar airpot style."
|
||||||
Kitchen Equipment,Commercial Microwave (1000W),Amana RCS10TS 1000W commercial microwave — stackable + push button,1,$500 ,$500 ,Medium,https://www.amazon.com/Amana-RCS10TS-Commercial-Microwave-Medium/dp/B00C35OKJW,Amana RCS10TS ~$487-626. Restaurant-grade.,
|
Kitchen Equipment,Commercial Microwave (1000W),Amana RCS10TS 1000W commercial microwave — stackable + push button,1,$500,$500,Medium,https://www.amazon.com/Amana-RCS10TS-Commercial-Microwave-Medium/dp/B00C35OKJW,"Amana RCS10TS ~$487-626. Restaurant-grade."
|
||||||
Kitchen Equipment,Commercial Air Fryer,Countertop air fryer for quick food prep (pastries + snacks),1,$200 ,$200 ,Medium,https://www.amazon.com/commercial-air-fryer-restaurant/s?k=commercial+air+fryer+for+restaurant,Commercial models $160-350. Search for right size.,
|
Kitchen Equipment,Commercial Air Fryer,Countertop air fryer for quick food prep (pastries + snacks),1,$200,$200,Medium,https://www.amazon.com/commercial-air-fryer-restaurant/s?k=commercial+air+fryer+for+restaurant,"Commercial models $160-350."
|
||||||
Kitchen Equipment,Countertop Ice Maker (26-50 lbs/day),Portable commercial ice maker for daily use,1,$180 ,$180 ,High,https://www.amazon.com/HENGMA-Commercial-Machine-Countertop-Restaurant/dp/B0C64X3KC2,HENGMA / COWSAR models ~$120-200. Supplement with bagged ice initially.,
|
Kitchen Equipment,Countertop Ice Maker (26-50 lbs/day),Portable commercial ice maker for daily use,1,$180,$180,High,https://www.amazon.com/HENGMA-Commercial-Machine-Countertop-Restaurant/dp/B0C64X3KC2,"HENGMA / COWSAR models ~$120-200. Supplement with bagged ice initially."
|
||||||
Kitchen Equipment,Undercounter Beverage Refrigerator,Commercial back bar cooler with glass door for milk + ingredients,1,$450 ,$450 ,Critical,https://www.amazon.com/Undercounter-Beverage-Refrigerator-Commercial-Temperature/dp/B0DHZMB5X6,FoMup 7.2 Cu Ft back bar cooler. Also Coolski 2-door option.,
|
Kitchen Equipment,Undercounter Beverage Refrigerator,Commercial back bar cooler with glass door for milk + ingredients,1,$450,$450,Critical,https://www.amazon.com/Undercounter-Beverage-Refrigerator-Commercial-Temperature/dp/B0DHZMB5X6,"FoMup 7.2 Cu Ft back bar cooler."
|
||||||
Kitchen Equipment,Compact Commercial Freezer,Countertop or undercounter freezer for frozen ingredients (ice cream + frozen fruit + pastries),1,$350 ,$350 ,Critical,https://www.amazon.com/commercial-countertop-freezer/s?k=commercial+countertop+freezer,Compact chest or undercounter model. ~$250-400.,
|
Kitchen Equipment,Compact Commercial Freezer,Countertop or undercounter freezer for frozen ingredients (ice cream + frozen fruit + pastries),1,$350,$350,Critical,https://www.amazon.com/commercial-countertop-freezer/s?k=commercial+countertop+freezer,"Compact chest or undercounter model. ~$250-400."
|
||||||
Kitchen Equipment,Hot Water Dispenser / Kettle,Instant hot water for tea service,1,$80 ,$80 ,Medium,https://www.amazon.com/commercial-hot-water-dispenser/s?k=commercial+hot+water+dispenser,Commercial electric kettle or on-demand dispenser.,
|
Kitchen Equipment,Hot Water Dispenser / Kettle,Instant hot water for tea service,1,$80,$80,Medium,https://www.amazon.com/commercial-hot-water-dispenser/s?k=commercial+hot+water+dispenser,"Commercial electric kettle or on-demand dispenser."
|
||||||
Water System,Water Hookup Kit + Inline Filter,Preferred: connect to lot spigot with food-grade hose + inline carbon filter. Eliminates daily refill.,1,$80,$80,Critical,https://www.amazon.com/rv-water-filter-inline/s?k=rv+inline+water+filter,RV food-grade hose + inline filter. Use this when lot has a spigot.
|
Water System,Water Hookup Kit + Inline Filter,Connect to lot spigot with food-grade hose + inline carbon filter. Eliminates daily refill.,1,$80,$80,Critical,https://www.amazon.com/rv-water-filter-inline/s?k=rv+inline+water+filter,"RV food-grade hose + inline filter. Use when lot has a spigot."
|
||||||
Water System,Fresh Water Tank (65 gal),BACKUP: for lots without a water hookup. Covers full 9-hour shift.,1,$180,$180,Medium,https://www.amazon.com/rv-fresh-water-tank-65/s?k=rv+fresh+water+tank+65+gallon,Keep installed as fallback. Only fill/use if no hookup available.
|
Water System,Fresh Water Tank (65 gal),BACKUP: for lots without a water hookup. Covers full 9-hour shift.,1,$180,$180,Medium,https://www.amazon.com/rv-fresh-water-tank-65/s?k=rv+fresh+water+tank+65+gallon,"Keep installed as fallback. Only fill/use if no hookup available."
|
||||||
Water System,12V Fresh Water Pump (3.5 GPM),On-demand pump — pressurizes lines to sinks + toilet,1,$50 ,$50 ,Critical,https://www.amazon.com/ECO-WORTHY-Pressure-Priming-Diaphragm-50PSI/dp/B0C5BQ1N6B,ECO-WORTHY 12V 3.5GPM. Runs off battery.,
|
Water System,12V Fresh Water Pump (3.5 GPM),On-demand pump — pressurizes lines to sinks + toilet,1,$50,$50,Critical,https://www.amazon.com/ECO-WORTHY-Pressure-Priming-Diaphragm-50PSI/dp/B0C5BQ1N6B,"ECO-WORTHY 12V 3.5GPM. Runs off battery."
|
||||||
Water System,Gray Water Tank (50 gal),Collects sink waste water (under trailer),1,$150 ,$150 ,Critical,https://www.amazon.com/rv-gray-water-tank/s?k=rv+gray+water+tank+50+gallon,Mounted under trailer. Separate from black tank.,
|
Water System,Gray Water Tank (50 gal),Collects sink waste water (under trailer),1,$150,$150,Critical,https://www.amazon.com/rv-gray-water-tank/s?k=rv+gray+water+tank+50+gallon,"Mounted under trailer. Separate from black tank."
|
||||||
Water System,Black Water Tank (30 gal) + permanent toilet,Holding tank for toilet waste — lasts ~3 weeks between pump-outs,1,$300 ,$300 ,Critical,https://www.amazon.com/rv-black-water-tank-30/s?k=rv+black+water+tank+30+gallon,Includes RV-style toilet + plumbing to tank. Stationary trailer = permanent install.,
|
Water System,Black Water Tank (30 gal) + permanent toilet,Holding tank for toilet waste — lasts ~3 weeks between pump-outs,1,$300,$300,Critical,https://www.amazon.com/rv-black-water-tank-30/s?k=rv+black+water+tank+30+gallon,"Includes RV-style toilet + plumbing to tank. Stationary trailer = permanent install."
|
||||||
Water System,Wireless Tank Level Monitor (Bluetooth),Monitors black + gray tank levels via phone app — alerts when near full,1,$60 ,$60 ,High,https://www.amazon.com/briidea-Bluetooth-Indicator-Detection-Auto-Sense/dp/B0DQ3K1PTZ,briidea Bluetooth sensor. Know when to call Huff Septic.,
|
Water System,Wireless Tank Level Monitor (Bluetooth),Monitors black + gray tank levels via phone app — alerts when near full,1,$60,$60,High,https://www.amazon.com/briidea-Bluetooth-Indicator-Detection-Auto-Sense/dp/B0DQ3K1PTZ,"briidea Bluetooth sensor. Know when to call Huff Septic."
|
||||||
Water System,Tankless Propane Water Heater (12V ignition),Instant hot water for hand-wash + 2-comp sink. Propane-fired — no battery draw for heating.,1,$250 ,$250 ,Critical,https://www.amazon.com/Fogatti-Tankless-55000BTU-Propane-Trailers/dp/B098THLN39,FOGATTI RV tankless. 12V ignition only — heat comes from propane.,
|
Water System,Tankless Propane Water Heater (12V ignition),Instant hot water for hand-wash + 2-comp sink. Propane-fired — no battery draw for heating.,1,$250,$250,Critical,https://www.amazon.com/Fogatti-Tankless-55000BTU-Propane-Trailers/dp/B098THLN39,"FOGATTI RV tankless. 12V ignition only — heat comes from propane."
|
||||||
Water System,Propane Tank (20 lb),Fuels water heater. ~2-4 weeks per tank at trailer usage.,1,$40 ,$40 ,Critical,,Any hardware store. Exchange program at most gas stations.,
|
Water System,Propane Tank (20 lb),Fuels water heater. ~2-4 weeks per tank at trailer usage.,1,$40,$40,Critical,,"Any hardware store. Exchange program at most gas stations."
|
||||||
Water System,Hand-Wash Sink (wall-mount mini),NSF-rated small hand-wash basin — health code required,1,$80 ,$80 ,Critical,https://www.amazon.com/commercial-hand-wash-sink/s?k=commercial+hand+wash+sink,Wall-mount. Required by health dept separate from dish sink.,
|
Water System,Hand-Wash Sink (wall-mount mini),NSF-rated small hand-wash basin — health code required,1,$80,$80,Critical,https://www.amazon.com/commercial-hand-wash-sink/s?k=commercial+hand+wash+sink,"Wall-mount. Required by health dept separate from dish sink."
|
||||||
Water System,2-Compartment Sink (commercial),Commercial 2-comp sink for pot/utensil washing — all customer items are disposable,1,$250 ,$250 ,Critical,https://www.amazon.com/2-compartment-commercial-sink/s?k=2+compartment+commercial+sink,NSF-rated. Only washing pots + utensils — no customer dishes.,
|
Water System,2-Compartment Sink (commercial),Commercial 2-comp sink for pot/utensil washing — all customer items are disposable,1,$250,$250,Critical,https://www.amazon.com/2-compartment-commercial-sink/s?k=2+compartment+commercial+sink,"NSF-rated. Only washing pots + utensils — no customer dishes."
|
||||||
Water System,Plumbing Fittings + PEX Lines,Connections: fresh tank → pump → heater → sinks/toilet → gray/black tanks,1,$120 ,$120 ,High,https://www.amazon.com/pex-plumbing-fittings-rv/s?k=pex+plumbing+fittings+rv,PEX + SharkBite fittings. DIY-friendly.,
|
Water System,Plumbing Fittings + PEX Lines,Connections: fresh tank → pump → heater → sinks/toilet → gray/black tanks,1,$120,$120,High,https://www.amazon.com/pex-plumbing-fittings-rv/s?k=pex+plumbing+fittings+rv,"PEX + SharkBite fittings. DIY-friendly."
|
||||||
Power,Predator 3500 Super Quiet Inverter Generator,3500W peak / 3000W running — 56 dB — auto-start when battery drops below 40% then shuts off,1,$800 ,$800 ,Critical,https://www.harborfreight.com/3500-watt-super-quiet-inverter-generator-with-co-secure-technology-49-state-compliant-71358.html,Harbor Freight Mishawaka (local). 11 hrs @ 25% load. Watch for coupons ($600-650).,
|
Power,Predator 3500 Super Quiet Inverter Generator,3500W peak / 3000W running — 56 dB — auto-start when battery drops below 40% then shuts off,1,$800,$800,Critical,https://www.harborfreight.com/3500-watt-super-quiet-inverter-generator-with-co-secure-technology-49-state-compliant-71358.html,"Harbor Freight Mishawaka (local). 11 hrs @ 25% load. Watch for coupons ($600-650)."
|
||||||
Power,LiFePO4 Battery Bank (3-5 kWh),Main power source — runs lights + small appliances + POS + network. Generator only kicks in at 40% SOC to recharge then shuts off.,1,"$1,500 ","$1,500 ",Critical,https://www.amazon.com/EF-ECOFLOW-Generator-High-Power-Appliances/dp/B09W9KDYFN,EcoFlow DELTA Pro 3.6kWh ~$2000. Or LiFePO4 server rack battery 48V 100Ah ~$800-1500. Size to daily need.,
|
Power,LiFePO4 Battery Bank (3-5 kWh),Main power source — runs lights + small appliances + POS + network. Generator only kicks in at 40% SOC.,1,"$1,500","$1,500",Critical,https://www.amazon.com/EF-ECOFLOW-Generator-High-Power-Appliances/dp/B09W9KDYFN,"EcoFlow DELTA Pro 3.6kWh ~$2000. Or LiFePO4 server rack battery 48V 100Ah ~$800-1500."
|
||||||
Power,Inverter (9500W pure sine wave),Converts battery DC to clean 120V AC — sized to handle all equipment including simultaneous burst loads. Skip if using EcoFlow (has built-in inverter).,1,$800 ,$800 ,High,https://www.amazon.com/pure-sine-wave-inverter-9500W/s?k=pure+sine+wave+inverter+9500W,AIMS or Giandel 9500W+ ~$700-1000. Handles full trailer load without staff restrictions.,
|
Power,Inverter (9500W pure sine wave),Converts battery DC to clean 120V AC. Skip if using EcoFlow (has built-in inverter).,1,$800,$800,High,https://www.amazon.com/pure-sine-wave-inverter-9500W/s?k=pure+sine+wave+inverter+9500W,"AIMS or Giandel 9500W+ ~$700-1000."
|
||||||
Power,Battery Charger / Transfer Switch,Auto-starts Predator when battery hits 40% — charges battery — auto-stops at 90%. Keeps generator runtime minimal.,1,$200 ,$200 ,High,https://www.amazon.com/automatic-generator-transfer-switch/s?k=automatic+generator+transfer+switch,If using EcoFlow: the Smart Generator does this natively. If DIY battery: need an auto-start module + charger.,
|
Power,Battery Charger / Transfer Switch,Auto-starts Predator when battery hits 40% — charges battery — auto-stops at 90%.,1,$200,$200,High,https://www.amazon.com/automatic-generator-transfer-switch/s?k=automatic+generator+transfer+switch,"If using EcoFlow: Smart Generator does this natively. If DIY battery: need auto-start module + charger."
|
||||||
Power,Shore Power Inlet (30A),30A RV-style inlet for locations with available power hookup — bypasses generator entirely,1,$80 ,$80 ,High,https://www.amazon.com/30-amp-rv-power-inlet/s?k=30+amp+rv+power+inlet,Bypass generator when lot provides power. Saves fuel + battery cycles.,
|
Power,Shore Power Inlet (30A),30A RV-style inlet for locations with available power hookup — bypasses generator entirely,1,$80,$80,High,https://www.amazon.com/30-amp-rv-power-inlet/s?k=30+amp+rv+power+inlet,"Bypass generator when lot provides power."
|
||||||
Power,Extension Cord (10 gauge 50ft),Heavy-duty extension for shore power connection,1,$60 ,$60 ,High,https://www.amazon.com/10-gauge-extension-cord-50ft/s?k=10+gauge+extension+cord+50ft,10AWG minimum for 30A service.,
|
Power,Extension Cord (10 gauge 50ft),Heavy-duty extension for shore power connection,1,$60,$60,High,https://www.amazon.com/10-gauge-extension-cord-50ft/s?k=10+gauge+extension+cord+50ft,"10AWG minimum for 30A service."
|
||||||
Power,LED Interior Lighting (12V DC),12V LED strips/panels powered directly from battery — no inverter loss,1,$80 ,$80 ,Medium,https://www.amazon.com/12v-led-strip-light/s?k=12v+led+strip+light,Run lights directly off battery DC. More efficient than through inverter.,
|
Power,LED Interior Lighting (12V DC),12V LED strips/panels powered directly from battery — no inverter loss,1,$80,$80,Medium,https://www.amazon.com/12v-led-strip-light/s?k=12v+led+strip+light,"Run lights directly off battery DC."
|
||||||
Climate,48V DC Mini Split Heat Pump (12000 BTU),AC + heat in one unit — runs directly off battery bank (no inverter loss). Heats in winter + cools in summer.,1,"$1,200 ","$1,200 ",Critical,https://www.amazon.com/Ton-Conditioner-12-000-BTU/dp/B0C6LDB1LS,48V DC powered. No inverter needed for climate. Indiana needs both heat and AC.,
|
Climate,48V DC Mini Split Heat Pump (12000 BTU),AC + heat in one unit — runs directly off battery bank. Indiana needs both heat and AC.,1,"$1,200","$1,200",Critical,https://www.amazon.com/Ton-Conditioner-12-000-BTU/dp/B0C6LDB1LS,"48V DC powered. No inverter needed for climate."
|
||||||
Networking & Security,12-Port POE Managed Switch (XikeStor 2.5G L2),Managed switch for cameras + POS + network — 8x 2.5G POE + 4x 10G SFP+,1,$200 ,$200 ,High,https://www.amazon.com/Managed-Network-2500Mbps-120Gbps-Management/dp/B0CGV4LL76,XikeStor 12-port 2.5G L2 managed POE+ 124W budget.,
|
Networking & Security,12-Port POE Managed Switch (XikeStor 2.5G L2),Managed switch for cameras + POS + network — 8x 2.5G POE + 4x 10G SFP+,1,$200,$200,High,https://www.amazon.com/Managed-Network-2500Mbps-120Gbps-Management/dp/B0CGV4LL76,"XikeStor 12-port 2.5G L2 managed POE+ 124W budget."
|
||||||
Networking & Security,POE Security Cameras (ZOSI 5MP dome),IP cameras for interior + exterior + drive-through monitoring,3,$50 ,$150 ,High,https://www.amazon.com/ZOSI-ZM4285D-Security-Outdoor-Surveillance/dp/B0862B6FVJ,ZOSI 5MP add-on POE dome ~$40-60 each. Work with ZOSI NVR.,
|
Networking & Security,POE Security Cameras (ZOSI 5MP dome),IP cameras for interior + exterior + drive-through monitoring,3,$50,$150,High,https://www.amazon.com/ZOSI-ZM4285D-Security-Outdoor-Surveillance/dp/B0862B6FVJ,"ZOSI 5MP add-on POE dome ~$40-60 each."
|
||||||
Networking & Security,NVR (8-channel with 1TB HDD),Network video recorder for camera storage + playback,1,$150 ,$150 ,High,https://www.amazon.com/ZOSI-NVR-8-channel/s?k=ZOSI+NVR+8+channel,ZOSI 8-ch NVR ~$150-200. Matches the cameras.,
|
Networking & Security,NVR (8-channel with 1TB HDD),Network video recorder for camera storage + playback,1,$150,$150,High,https://www.amazon.com/ZOSI-NVR-8-channel/s?k=ZOSI+NVR+8+channel,"ZOSI 8-ch NVR ~$150-200. Matches the cameras."
|
||||||
Networking & Security,Cellular Modem / Mobile Router,4G/5G internet for POS + cameras + remote monitoring,1,$150 ,$150 ,High,https://www.amazon.com/cellular-router-industrial/s?k=cellular+router+industrial,Peplink or GL.iNet industrial. Monthly data plan separate.,
|
Networking & Security,Cellular Modem / Mobile Router,4G/5G internet for POS + cameras + remote monitoring,1,$150,$150,High,https://www.amazon.com/cellular-router-industrial/s?k=cellular+router+industrial,"Peplink or GL.iNet industrial. Monthly data plan separate."
|
||||||
Networking & Security,UPS (Battery Backup),Small UPS for switch + NVR + modem during power blips,1,$80 ,$80 ,Medium,https://www.amazon.com/APC-UPS-Battery-Backup/s?k=APC+UPS+battery+backup,Keep network gear alive during generator switchover.,
|
Networking & Security,UPS (Battery Backup),Small UPS for switch + NVR + modem during power blips,1,$80,$80,Medium,https://www.amazon.com/APC-UPS-Battery-Backup/s?k=APC+UPS+battery+backup,"Keep network gear alive during generator switchover."
|
||||||
Networking & Security,Apple AirTag (trailer GPS tracking),Hidden tracker on trailer frame — locate if stolen or towed,1,$30,$30,High,https://www.amazon.com/Apple-MX542LL-A-AirTag/dp/B0D54JZTHY,Mount in hidden spot on frame. Pair with weatherproof holder. Requires iPhone/Find My network.,
|
Networking & Security,Apple AirTag (trailer GPS tracking),Hidden tracker on trailer frame — locate if stolen or towed,1,$30,$30,High,https://www.amazon.com/Apple-MX542LL-A-AirTag/dp/B0D54JZTHY,"Mount in hidden spot on frame. Requires iPhone/Find My network."
|
||||||
POS & Payment,Square Terminal,All-in-one card reader + receipt printer + POS,1,$399 ,$399 ,Critical,https://www.amazon.com/square-b07npnnqln-terminal/dp/b07npnnqln,Square Terminal on Amazon. Free POS software. 2.6% + 15¢ processing.,
|
POS & Payment,Square Terminal,All-in-one card reader + receipt printer + POS,1,$399,$399,Critical,https://www.amazon.com/square-b07npnnqbn-terminal/dp/b07npnnqbn,"Square Terminal. Free POS software. 2.6% + 15¢ processing."
|
||||||
POS & Payment,iPad (10th gen) for Square POS,Backup display + order management tablet,1,$350 ,$350 ,High,https://www.amazon.com/Apple-2022-10-9-inch-iPad-Wi-Fi/dp/B0BJLXMVMV,iPad 10th gen. Runs Square POS app.,
|
POS & Payment,iPad (10th gen) for Square POS,Backup display + order management tablet,1,$350,$350,High,https://www.amazon.com/Apple-2022-10-9-inch-iPad-Wi-Fi/dp/B0BJLXMVMV,"iPad 10th gen. Runs Square POS app."
|
||||||
POS & Payment,Cash Drawer,Lockable cash drawer connected to POS,1,$50 ,$50 ,Medium,https://www.amazon.com/cash-drawer/s?k=cash+drawer,Basic 16-inch cash drawer ~$40-60.,
|
POS & Payment,Cash Drawer,Lockable cash drawer connected to POS,1,$50,$50,Medium,https://www.amazon.com/cash-drawer/s?k=cash+drawer,"Basic 16-inch cash drawer ~$40-60."
|
||||||
POS & Payment,Receipt Printer (thermal),Backup receipt printer or kitchen ticket printer,1,$80 ,$80 ,Low,https://www.amazon.com/thermal-receipt-printer/s?k=thermal+receipt+printer,Square Terminal has built-in. Only needed for kitchen tickets.,
|
POS & Payment,Receipt Printer (thermal),Backup receipt printer or kitchen ticket printer,1,$80,$80,Low,https://www.amazon.com/thermal-receipt-printer/s?k=thermal+receipt+printer,"Square Terminal has built-in. Only needed for kitchen tickets."
|
||||||
Signage & Exterior,Menu Board (illuminated),LED-backlit menu board or digital display for drive-through,1,$300 ,$300 ,High,https://www.amazon.com/led-menu-board/s?k=led+menu+board,Outdoor-rated. Consider digital (TV + media player) for easy updates.,
|
Signage & Exterior,Menu Board (illuminated),LED-backlit menu board or digital display for drive-through,1,$300,$300,High,https://www.amazon.com/led-menu-board/s?k=led+menu+board,"Outdoor-rated. Consider digital (TV + media player) for easy updates."
|
||||||
Signage & Exterior,Exterior Branding / Trailer Wrap,Full vinyl wrap — The Daily Pour branding,1,"$1,500 ","$1,500 ",High,https://wrapmate.com/locations/in-south-bend/,Wrapmate (3 certified 3M installers in South Bend area). Also: Indiana Wrap Co (NW Indiana) indianawrapco.com or Wraphouse Graphics (Indiana).,
|
Signage & Exterior,Exterior Branding / Trailer Wrap,Full vinyl wrap — The Daily Pour branding,1,"$2,500","$2,500",High,https://wrapmate.com/locations/in-south-bend/,"Wrapmate (3 certified 3M installers in South Bend). Also: Indiana Wrap Co or Wraphouse Graphics."
|
||||||
Signage & Exterior,A-Frame Sidewalk Sign,Portable sandwich board for street-side advertising,1,$60 ,$60 ,Medium,https://www.amazon.com/a-frame-sidewalk-sign/s?k=a+frame+sidewalk+sign,Chalkboard or dry-erase style ~$40-80.,
|
Signage & Exterior,A-Frame Sidewalk Sign,Portable sandwich board for street-side advertising,1,$60,$60,Medium,https://www.amazon.com/a-frame-sidewalk-sign/s?k=a+frame+sidewalk+sign,"Chalkboard or dry-erase style ~$40-80."
|
||||||
Supplies (initial stock),Coffee Beans (wholesale 25 lb),Initial coffee bean inventory,2,$200 ,$400 ,Critical,https://www.bendixcoffee.com/,Bendix Coffee Roasters — local Michiana roaster (South Bend). Also: Revenant (231 S Michigan St) or Coffee Express Roasting Co (Michigan — near state line).,
|
Supplies (initial stock),Coffee Beans (wholesale 25 lb),Initial coffee bean inventory,2,$200,$400,Critical,https://www.bendixcoffee.com/,"Bendix Coffee Roasters — local Michiana roaster (South Bend). Also: Revenant or Coffee Express Roasting Co."
|
||||||
Supplies (initial stock),Milk + Cream (initial stock),Whole milk + oat milk + cream,1,$150 ,$150 ,Critical,https://www.shopatdean.com/pages/south-bend-restaurant-supply,Dean Supply (South Bend restaurant supply). Also: Stanz Foodservice (South Bend — full distributor + public self-service store). Or Atlas Restaurant Supply (52245 IN-933 South Bend).,
|
Supplies (initial stock),Milk + Cream (initial stock),Whole milk + oat milk + cream,1,$150,$150,Critical,https://www.shopatdean.com/pages/south-bend-restaurant-supply,"Dean Supply (South Bend). Also: Stanz Foodservice or Atlas Restaurant Supply."
|
||||||
Supplies (initial stock),Cups + Lids + Sleeves + Straws,Disposable serving supplies (first month),1,$300 ,$300 ,Critical,https://www.amazon.com/disposable-coffee-cups-lids/s?k=disposable+coffee+cups+lids,Bulk order — hot cups + cold cups + lids + straws.,
|
Supplies (initial stock),Cups + Lids + Sleeves + Straws,Disposable serving supplies (first month),1,$300,$300,Critical,https://www.amazon.com/disposable-coffee-cups-lids/s?k=disposable+coffee+cups+lids,"Bulk order — hot cups + cold cups + lids + straws."
|
||||||
Supplies (initial stock),Syrups + Flavorings,Vanilla + caramel + hazelnut + seasonal,1,$200 ,$200 ,High,https://www.amazon.com/Torani-variety-pack/s?k=Torani+variety+pack,Torani or Monin commercial bottles. Available on Amazon.,
|
Supplies (initial stock),Syrups + Flavorings,Vanilla + caramel + hazelnut + seasonal,1,$200,$200,High,https://www.amazon.com/Torani-variety-pack/s?k=Torani+variety+pack,"Torani or Monin commercial bottles."
|
||||||
Permits & Fees,Mobile Food Vendor Permit,St. Joseph County / City of South Bend food vendor permit,1,$200 ,$200 ,Critical,https://www.sjcindiana.com/159/Health-Department,St. Joseph County Health Department. Contact for mobile food vendor application.,
|
Permits & Fees,Mobile Food Vendor Permit,St. Joseph County / City of South Bend food vendor permit,1,$200,$200,Critical,https://www.sjcindiana.com/159/Health-Department,"St. Joseph County Health Department."
|
||||||
Permits & Fees,Health Department Inspection,Initial inspection fee,1,$100 ,$100 ,Critical,https://www.sjcindiana.com/159/Health-Department,Same — required before opening. Schedule with county.,
|
Permits & Fees,Health Department Inspection,Initial inspection fee,1,$100,$100,Critical,https://www.sjcindiana.com/159/Health-Department,"Required before opening. Schedule with county."
|
||||||
,,,,ESTIMATED ONE-TIME TOTAL:,"$35,000 ",,,,
|
Permits & Fees,Business Insurance (gen liability + cyber E&O + workers comp),GL + food service + workers comp + cyber coverage,1,"$2,000","$2,000",Critical,,"Get quotes from local agent. Bundled package."
|
||||||
|
,,,,ESTIMATED ONE-TIME TOTAL:,"$50,000",,,Includes $15k 3-month operating reserve (marketing + ramp-up)
|
||||||
,,,,,,,,,
|
,,,,,,,,,
|
||||||
Recurring (monthly),Item,Description,Qty,Est. Monthly Cost,Annual Est.,Priority,Link/Source,Notes,
|
Recurring (monthly),Item,Description,Qty,Est. Monthly Cost,Annual Est.,Priority,Link/Source,Notes
|
||||||
Recurring (monthly),Lot Lease,Monthly parking lot lease for trailer location,1,$500 ,"$6,000 ",Critical,,Kiowa negotiates. $300-1000/mo depending on traffic.,
|
Recurring (monthly),Lot Lease,Monthly parking lot lease for trailer location,1,$750,"$9,000",Critical,,"Kiowa negotiates. $500-1000/mo depending on traffic."
|
||||||
Recurring (monthly),Business Insurance,General liability + food service coverage,1,$250 ,"$3,000 ",Critical,,Get quotes from local agent. ~$150-300/mo.,
|
Recurring (monthly),Business Insurance,General liability + food service coverage,1,$250,"$3,000",Critical,,"~$150-300/mo."
|
||||||
Recurring (monthly),Trailer Manager Salary,On-site manager running T-00 daily operations (W-2),1,"$3,200 ","$38,400 ",Critical,,Kiowa hires. Full-time.,
|
Recurring (monthly),Trailer Manager Salary,On-site manager running T00-DRIP daily operations (W-2),1,"$3,616","$43,392",Critical,,"Kiowa hires. Full-time. Loaded rate (includes taxes/benefits)."
|
||||||
Recurring (monthly),Part-Time Staff Salary,Part-time barista/support for peak hours (W-2 or 1099),1,"$1,200 ","$14,400 ",Critical,,Covers rush periods.,
|
Recurring (monthly),Part-Time Staff Salary,Part-time barista/support for peak hours,1,"$1,200","$14,400",High,,"Covers rush periods."
|
||||||
Recurring (monthly),Fresh Water Refill,65 gal/day × 26 days/mo — municipal water or delivery,1,$50 ,$600 ,Medium,,Fill from lot spigot (if available) or haul. Very cheap if lot has water hookup.,
|
Recurring (monthly),Fresh Water Refill,65 gal/day — municipal water or lot spigot,1,$50,$600,Medium,,"Free if lot has water hookup."
|
||||||
Recurring (monthly),Propane (water heater),20 lb tank exchange every 2-4 weeks,1,$30 ,$360 ,Medium,,Gas station exchange ~$25-35.,
|
Recurring (monthly),Propane (water heater),20 lb tank exchange every 2-4 weeks,1,$30,$360,Medium,,"Gas station exchange ~$25-35."
|
||||||
Recurring (monthly),Generator Fuel (gas),Predator runs ~4 hrs/day × 26 days/mo × 0.5 gal/hr,1,$100 ,"$1,200 ",High,,~52 gal/mo × ~$3.50/gal. Less if battery is oversized.,
|
Recurring (monthly),Generator Fuel (gas),Predator runs ~4 hrs/day × 26 days/mo × 0.5 gal/hr,1,$100,"$1,200",High,,"~52 gal/mo × ~$3.50/gal. Less if battery oversized or shore power available."
|
||||||
Recurring (monthly),Black Tank Pump-Out (Huff Septic),On-demand pump-out every 2-3 weeks (30 gal black tank),1,$100 ,"$1,200 ",Critical,https://huffseptic.com/,Huff Septic South Bend. $75-150/visit. Call when monitor says 80%.,
|
Recurring (monthly),Black Tank Pump-Out (Huff Septic),On-demand pump-out every 2-3 weeks (30 gal black tank),1,$100,"$1,200",Critical,https://huffseptic.com/,"Huff Septic South Bend. $75-150/visit."
|
||||||
Recurring (monthly),Gray Water Disposal,Pump-out or drain to sewer if lot permits,1,$50 ,$600 ,Medium,https://huffseptic.com/,Often same visit as black tank. Some lots have sewer hookup (free).,
|
Recurring (monthly),Gray Water Disposal,Pump-out or drain to sewer if lot permits,1,$50,$600,Medium,https://huffseptic.com/,"Often same visit as black tank."
|
||||||
Recurring (monthly),Coffee Beans (wholesale),Ongoing bean supply from local roaster,1,$400 ,"$4,800 ",Critical,https://www.bendixcoffee.com/,Bendix Coffee Roasters (South Bend). ~100 customers/day.,
|
Recurring (monthly),Coffee Beans (wholesale),Ongoing bean supply from local roaster,1,$400,"$4,800",Critical,https://www.bendixcoffee.com/,"Bendix Coffee Roasters. ~100 customers/day."
|
||||||
Recurring (monthly),Milk + Cream + Oat Milk,Perishable dairy/alt-milk supply,1,$300 ,"$3,600 ",Critical,https://www.shopatdean.com/pages/south-bend-restaurant-supply,Dean Supply or Stanz Foodservice (South Bend).,
|
Recurring (monthly),Milk + Cream + Oat Milk,Perishable dairy/alt-milk supply,1,$300,"$3,600",Critical,https://www.shopatdean.com/pages/south-bend-restaurant-supply,"Dean Supply or Stanz Foodservice."
|
||||||
Recurring (monthly),Cups + Lids + Disposables,Hot cups + cold cups + lids + straws + sleeves,1,$250 ,"$3,000 ",Critical,https://www.amazon.com/disposable-coffee-cups-lids/s?k=disposable+coffee+cups+lids,Bulk order monthly.,
|
Recurring (monthly),Cups + Lids + Disposables,Hot cups + cold cups + lids + straws + sleeves,1,$250,"$3,000",Critical,https://www.amazon.com/disposable-coffee-cups-lids/s?k=disposable+coffee+cups+lids,"Bulk order monthly."
|
||||||
Recurring (monthly),Syrups + Flavorings,Torani/Monin refills,1,$100 ,"$1,200 ",High,https://www.amazon.com/Torani-variety-pack/s?k=Torani+variety+pack,Restock as needed.,
|
Recurring (monthly),Syrups + Flavorings,Torani/Monin refills,1,$100,"$1,200",High,,"Restock as needed."
|
||||||
Recurring (monthly),Cellular Data Plan,4G/5G for POS + cameras + remote monitoring,1,$75 ,$900 ,High,,T-Mobile or AT&T business plan.,
|
Recurring (monthly),Cellular Data Plan,4G/5G for POS + cameras + remote monitoring,1,$75,$900,High,,"T-Mobile or AT&T business plan."
|
||||||
Recurring (monthly),Square Processing Fees,2.6% + 15¢ per transaction (100 customers/day × $8 avg × 26 days),1,$560 ,"$6,720 ",Critical,,~$20,800/mo revenue × 2.7% effective rate.
|
Recurring (monthly),Square Processing Fees,2.6% + 15¢ per transaction (100 customers/day × $8 avg × 26 days),1,$560,"$6,720",Critical,,"~$20,800/mo revenue × 2.7% effective rate."
|
||||||
,,,,EST. MONTHLY RECURRING:,"$7,165 ",,,,
|
Recurring (monthly),Workers Comp Insurance,Required for W-2 employees,1,$80,$960,Critical,,"Rate varies by state/industry."
|
||||||
,,,,EST. ANNUAL RECURRING:,"$85,980 ",,,,
|
,,,,EST. MONTHLY RECURRING:,"$7,961",,,
|
||||||
|
,,,,EST. ANNUAL RECURRING:,"$95,532",,,
|
||||||
|
|||||||
|
Can't render this file because it has a wrong number of fields in line 14.
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,124 @@
|
|||||||
|
# The Daily Pour — Trailer Registry
|
||||||
|
|
||||||
|
## Naming Convention
|
||||||
|
|
||||||
|
**File structure (Drive, folders, Plane projects):** `T[##]-[CODENAME]`
|
||||||
|
**Internal operations (network, POS, hostnames, security):** `T[##]-[CODENAME]-[HEX]`
|
||||||
|
|
||||||
|
- `T##` = trailer number (00–09)
|
||||||
|
- `CODENAME` = unique coffee-themed identifier for the unit
|
||||||
|
- `HEX` = brand color hex (no `#` prefix) — **appended only when the unit is fully
|
||||||
|
operational and secured by SNS Networking** (network configured, POS locked down,
|
||||||
|
segmented, signed off). The hex suffix = "this trailer is live and secure."
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
- Planning/buildout phase: `T00-DRIP`
|
||||||
|
- Fully deployed + secured: `T00-DRIP-4B2E20`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Trailer Assignments
|
||||||
|
|
||||||
|
| Trailer | Codename | Color Name | Hex | Full ID (when secured) |
|
||||||
|
|---------|----------|-----------|-----|------------------------|
|
||||||
|
| T00 | DRIP | Rich Brown | `4B2E20` | `T00-DRIP-4B2E20` |
|
||||||
|
| T01 | ROAST | Blush Pink | `E7B4B8` | `T01-ROAST-E7B4B8` |
|
||||||
|
| T02 | BLOOM | Warm Cream | `F7EFE6` | `T02-BLOOM-F7EFE6` |
|
||||||
|
| T03 | STEAM | Soft Gold | `D4AF37` | `T03-STEAM-D4AF37` |
|
||||||
|
| T04 | GRIND | Taupe | `A78A7A` | `T04-GRIND-A78A7A` |
|
||||||
|
| T05 | PRESS | Sage Green | `A3B18A` | `T05-PRESS-A3B18A` |
|
||||||
|
| T06 | EMBER | Dusty Rose | `C9918B` | `T06-EMBER-C9918B` |
|
||||||
|
| T07 | CREMA | Espresso | `2C1A12` | `T07-CREMA-2C1A12` |
|
||||||
|
| T08 | PULL | Copper | `B87333` | `T08-PULL-B87333` |
|
||||||
|
| T09 | BEAN | Slate Blue | `6B7F99` | `T09-BEAN-6B7F99` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Color Palette
|
||||||
|
|
||||||
|
### Primary (from brand mockup)
|
||||||
|
|
||||||
|
| Color | Hex | Use |
|
||||||
|
|-------|-----|-----|
|
||||||
|
| Rich Brown | `#4B2E20` | Primary dark, signage, text |
|
||||||
|
| Blush Pink | `#E7B4B8` | Accent, warmth |
|
||||||
|
| Warm Cream | `#F7EFE6` | Backgrounds, light surfaces |
|
||||||
|
| Soft Gold | `#D4AF37` | Highlights, premium touches |
|
||||||
|
| Taupe | `#A78A7A` | Neutral, secondary surfaces |
|
||||||
|
|
||||||
|
### Expansion (trailers 05–09)
|
||||||
|
|
||||||
|
| Color | Hex | Use |
|
||||||
|
|-------|-----|-----|
|
||||||
|
| Sage Green | `#A3B18A` | Earthy, calming |
|
||||||
|
| Dusty Rose | `#C9918B` | Deeper warmth |
|
||||||
|
| Espresso | `#2C1A12` | Bold dark accent |
|
||||||
|
| Copper | `#B87333` | Metallic warmth |
|
||||||
|
| Slate Blue | `#6B7F99` | Cool contrast, still muted |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Trailer #1 — DRIP
|
||||||
|
|
||||||
|
| Field | Value |
|
||||||
|
|-------|-------|
|
||||||
|
| ID | `T00-DRIP` |
|
||||||
|
| Full ID (when secured) | `T00-DRIP-4B2E20` |
|
||||||
|
| Color | Rich Brown (`#4B2E20`) |
|
||||||
|
| Drive folder | `T00-DRIP/` |
|
||||||
|
| Plane projects | `T00 Legal`, `T00 Ops`, `T00 Marketing`, etc. |
|
||||||
|
| Location | TBD |
|
||||||
|
| Status | Pre-launch (not yet secured → no hex suffix) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Folder Structure (Google Drive)
|
||||||
|
|
||||||
|
```
|
||||||
|
SnS Hospitality Group LLC/
|
||||||
|
├── T00-09-COMMON/ ← shared SOPs, menus, templates, branding (all trailers)
|
||||||
|
│ ├── Legal/
|
||||||
|
│ ├── Marketing/
|
||||||
|
│ ├── Ops/
|
||||||
|
│ ├── Research/
|
||||||
|
│ └── Buildout/
|
||||||
|
│
|
||||||
|
├── T00-DRIP/ ← Trailer #1 specific
|
||||||
|
│ ├── Vehicle/ (VIN, title, license plate, registration, photos)
|
||||||
|
│ ├── Network/ (router, POS, tablet, IP assignments)
|
||||||
|
│ ├── Equipment/ (serials, warranties, manuals)
|
||||||
|
│ ├── Location/ (lease agreement, site photos, parking map)
|
||||||
|
│ └── Tools/ (inventory, maintenance log)
|
||||||
|
│
|
||||||
|
├── T01-ROAST/ ← Trailer #2 (future)
|
||||||
|
├── T02-BLOOM/ ← Trailer #3 (future)
|
||||||
|
└── ...
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Typography
|
||||||
|
|
||||||
|
| Use | Font | Weight |
|
||||||
|
|-----|------|--------|
|
||||||
|
| Logo / Headlines | Playfair Display | Bold |
|
||||||
|
| Body / Menu boards | Montserrat | All Caps / Medium |
|
||||||
|
| Tagline / Scripts | Lovely Script | Regular |
|
||||||
|
|
||||||
|
**Tagline:** *Good Coffee. Great Vibes. On Purpose.*
|
||||||
|
**Brand values:** Good Coffee. Real Connections. Better Every Day.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Security Handoff (SNS Networking → Hospitality)
|
||||||
|
|
||||||
|
The hex suffix is added to a trailer's ID when SNS Networking has completed:
|
||||||
|
1. Network hardware installed (router, AP, firewall)
|
||||||
|
2. POS system configured and hardened
|
||||||
|
3. Network segmented (customer WiFi isolated from POS/ops)
|
||||||
|
4. Remote management access verified
|
||||||
|
5. Sign-off documented
|
||||||
|
|
||||||
|
Until that handoff, the trailer operates as `T##-CODENAME` only.
|
||||||
|
This keeps a clean boundary between **Hospitality operations** (Kiowa's domain)
|
||||||
|
and **technology infrastructure** (SNS Networking's domain).
|
||||||
394
businesses/sns-hospitality-group/docs/kiowa-meeting-agenda.html
Normal file
394
businesses/sns-hospitality-group/docs/kiowa-meeting-agenda.html
Normal file
@ -0,0 +1,394 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Kiowa Meeting Agenda — SnS Hospitality Group</title>
|
||||||
|
<style>
|
||||||
|
:root{--navy:#0A1628;--amber:#D4AF37;--brown:#4B2E20;--cream:#F7EFE6;--pink:#E7B4B8;--taupe:#A78A7A;--green:#A3B18A;--red:#dc2626;}
|
||||||
|
*{box-sizing:border-box}
|
||||||
|
body{margin:0;background:#f2f4f7;font-family:'Montserrat','Segoe UI',sans-serif;color:var(--brown);line-height:1.7;font-size:15px;}
|
||||||
|
.doc{max-width:850px;margin:0 auto;background:#fff;padding:48px 56px 64px;box-shadow:0 2px 24px rgba(75,46,32,.1);}
|
||||||
|
.header{border-bottom:3px solid var(--amber);padding-bottom:20px;margin-bottom:28px;display:flex;justify-content:space-between;align-items:flex-end;}
|
||||||
|
.header h1{font-family:'Playfair Display',Georgia,serif;font-size:1.6rem;color:var(--brown);margin:0;}
|
||||||
|
.header .meeting-info{text-align:right;font-size:.85rem;color:var(--taupe);}
|
||||||
|
h2{font-family:'Playfair Display',Georgia,serif;font-size:1.15rem;color:var(--brown);border-bottom:2px solid var(--amber);padding-bottom:6px;margin:32px 0 14px;}
|
||||||
|
h3{font-size:.95rem;color:var(--brown);margin:20px 0 8px;}
|
||||||
|
.checklist{list-style:none;padding:0;margin:12px 0;}
|
||||||
|
.checklist li{padding:10px 12px;border-bottom:1px solid var(--pink);display:flex;align-items:flex-start;gap:10px;}
|
||||||
|
.checklist li:last-child{border-bottom:none;}
|
||||||
|
.checklist input[type="checkbox"]{width:18px;height:18px;margin-top:2px;accent-color:var(--amber);flex-shrink:0;}
|
||||||
|
.checklist label{cursor:pointer;flex:1;}
|
||||||
|
.checklist .sub{margin-left:28px;font-size:.88rem;color:var(--taupe);margin-top:4px;}
|
||||||
|
.card{background:var(--cream);border-radius:8px;padding:16px 20px;margin:14px 0;}
|
||||||
|
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0;}
|
||||||
|
.role-card{border-radius:8px;padding:16px;border:2px solid;}
|
||||||
|
.role-sam{border-color:var(--amber);background:#fffbeb;}
|
||||||
|
.role-kiowa{border-color:var(--green);background:#f0fdf4;}
|
||||||
|
.role-card h4{margin:0 0 8px;font-size:.9rem;}
|
||||||
|
.role-card ul{margin:0;padding-left:18px;font-size:.85rem;}
|
||||||
|
.role-card li{margin-bottom:4px;}
|
||||||
|
.note{background:rgba(212,175,55,0.12);border-left:3px solid var(--amber);padding:10px 14px;margin:12px 0;font-size:.88rem;}
|
||||||
|
.warning{background:rgba(220,38,38,0.06);border-left:3px solid var(--red);padding:10px 14px;margin:12px 0;font-size:.88rem;}
|
||||||
|
table{width:100%;border-collapse:collapse;margin:12px 0;font-size:.88rem;}
|
||||||
|
th{text-align:left;padding:8px 10px;background:var(--brown);color:var(--cream);font-weight:600;}
|
||||||
|
td{padding:8px 10px;border-bottom:1px solid var(--pink);}
|
||||||
|
.sig-area{margin-top:24px;padding:16px;border:2px dashed var(--taupe);border-radius:8px;}
|
||||||
|
.sig-line{border-bottom:1px solid var(--brown);width:60%;height:20px;margin:16px 0 4px;}
|
||||||
|
.sig-label{font-size:.78rem;color:var(--taupe);}
|
||||||
|
footer{text-align:center;color:var(--taupe);font-size:.78rem;padding:24px;margin-top:32px;border-top:1px solid var(--pink);}
|
||||||
|
@media print{
|
||||||
|
body{background:#fff}
|
||||||
|
.doc{box-shadow:none;padding:24px 36px}
|
||||||
|
.checklist input[type="checkbox"]{-webkit-appearance:none;border:2px solid var(--brown);border-radius:3px;width:16px;height:16px;}
|
||||||
|
footer{display:none}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="doc">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div>
|
||||||
|
<h1>Founder Meeting Agenda</h1>
|
||||||
|
<span style="color:var(--amber);font-weight:600;">SnS Hospitality Group LLC — The Daily Pour</span>
|
||||||
|
</div>
|
||||||
|
<div class="meeting-info">
|
||||||
|
<strong>Zoom Meeting</strong><br>
|
||||||
|
<label>Date: <input type="date" id="meeting-date" style="font-size:.85rem;padding:2px 6px;border:1px solid var(--taupe);border-radius:4px;"></label><br>
|
||||||
|
<label>Time: <input type="time" id="meeting-time" style="font-size:.85rem;padding:2px 6px;border:1px solid var(--taupe);border-radius:4px;"></label><br>
|
||||||
|
Duration: ~45 min
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- TOOLBAR -->
|
||||||
|
<div id="toolbar" style="display:flex;gap:12px;margin-bottom:24px;padding:12px 16px;background:var(--cream);border-radius:8px;align-items:center;flex-wrap:wrap;">
|
||||||
|
<button onclick="saveState()" style="padding:8px 16px;background:var(--amber);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;font-size:.85rem;">💾 Save Progress</button>
|
||||||
|
<button onclick="loadState()" style="padding:8px 16px;background:var(--brown);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;font-size:.85rem;">📂 Load Saved</button>
|
||||||
|
<button onclick="downloadPDF()" style="padding:8px 16px;background:var(--green);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;font-size:.85rem;">📄 Download PDF</button>
|
||||||
|
<span id="save-status" style="font-size:.8rem;color:var(--taupe);"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- SECTION 1: OPENING -->
|
||||||
|
<h2>1. Opening — Where We Stand</h2>
|
||||||
|
<div class="card">
|
||||||
|
<strong>Progress since last conversation:</strong>
|
||||||
|
<ul style="margin:8px 0 0;padding-left:20px;font-size:.9rem;">
|
||||||
|
<li>✅ LLC filed on INBiz (August 6, 2026) — pending acceptance</li>
|
||||||
|
<li>✅ EIN obtained: 42-4288652</li>
|
||||||
|
<li>✅ Google Drive folder structure set up (T00-09-COMMON + T00-DRIP)</li>
|
||||||
|
<li>✅ Project management tool live (Plane — plane.snsnetlabs.com)</li>
|
||||||
|
<li>✅ Funding research complete — 12 programs identified</li>
|
||||||
|
<li>✅ Supply checklist drafted — needs Kiowa/manager validation</li>
|
||||||
|
<li>⏳ Savannah declined Location Manager role — need replacement</li>
|
||||||
|
<li>⏳ OA signature — pending this meeting</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="checklist">
|
||||||
|
<li><input type="checkbox" id="c1"><label for="c1">Reviewed progress together — any questions?</label></li>
|
||||||
|
<li><input type="checkbox" id="c2"><label for="c2">Confirmed LLC filing is pending (expect acceptance within 48hrs)</label></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- SECTION 2: ROLES -->
|
||||||
|
<h2>2. Roles & Responsibilities — Reiterate and Confirm</h2>
|
||||||
|
<p>Let's make sure we're both clear on who does what. This is what the OA says:</p>
|
||||||
|
|
||||||
|
<div class="role-grid">
|
||||||
|
<div class="role-card role-sam">
|
||||||
|
<h4>🔶 Sam — Capital & Strategy (Holdings, 85%)</h4>
|
||||||
|
<ul>
|
||||||
|
<li>All capital investment + funding applications</li>
|
||||||
|
<li>Bank accounts + financial control</li>
|
||||||
|
<li>Forming/dissolving ventures</li>
|
||||||
|
<li>Approving new locations + expansion timing</li>
|
||||||
|
<li>Hiring/removing Location Managers</li>
|
||||||
|
<li>Technology, network, security (SNS Networking)</li>
|
||||||
|
<li>Final authority on major decisions</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="role-card role-kiowa">
|
||||||
|
<h4>🟢 Kiowa — Operations Director (15%)</h4>
|
||||||
|
<ul>
|
||||||
|
<li>Compliance — permits, licenses, health dept, renewals</li>
|
||||||
|
<li>Site selection — finding + securing parking lot locations</li>
|
||||||
|
<li>SOPs — building standard operating procedures</li>
|
||||||
|
<li>Grant sourcing — identifying + applying for grants</li>
|
||||||
|
<li>Growth planning — expansion strategy</li>
|
||||||
|
<li>Legal/admin — formation paperwork, regulatory filings</li>
|
||||||
|
<li>Recruiting Location Managers</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="checklist">
|
||||||
|
<li><input type="checkbox" id="c3"><label for="c3">Both parties confirm understanding of roles</label></li>
|
||||||
|
<li><input type="checkbox" id="c4"><label for="c4">Kiowa confirms: she is NOT responsible for day-to-day trailer operations (that's the Location Manager's job)</label></li>
|
||||||
|
<li><input type="checkbox" id="c5"><label for="c5">Confirmed: escalations (equipment failure, staffing crises) are shared responsibility</label></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- SECTION 3: OA -->
|
||||||
|
<h2>3. Operating Agreement — Review & Sign</h2>
|
||||||
|
|
||||||
|
<div class="warning">
|
||||||
|
<strong>Critical:</strong> The OA must be signed by both parties before any funding applications or bank account opening.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="checklist">
|
||||||
|
<li><input type="checkbox" id="c6"><label for="c6">Kiowa confirms she has READ the full Operating Agreement</label></li>
|
||||||
|
<li><input type="checkbox" id="c7"><label for="c7">Reviewed key terms together:
|
||||||
|
<div class="sub">• 15% equity vesting (5% immediate + 2.5%/quarter × 4)<br>
|
||||||
|
• Up to 10% additional via investment (optional)<br>
|
||||||
|
• Grant finder's fee: 7.5% of any grant she secures<br>
|
||||||
|
• Departure buyback terms (before 10 trailers)<br>
|
||||||
|
• Forfeiture for cause (fraud/theft only)<br>
|
||||||
|
• After 10 trailers: equity is permanent</div>
|
||||||
|
</label></li>
|
||||||
|
<li><input type="checkbox" id="c8"><label for="c8">Kiowa asks any questions / raises concerns</label></li>
|
||||||
|
<li><input type="checkbox" id="c9"><label for="c9">Both parties agree to terms as written</label></li>
|
||||||
|
<li><input type="checkbox" id="c10"><label for="c10">OA signed (digital or physical) — effective date August 6, 2026</label></li>
|
||||||
|
<li><input type="checkbox" id="c11"><label for="c11">Signed copy uploaded to Google Drive → T00-09-COMMON/Legal/</label></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- SECTION 4: FUNDING & SSN -->
|
||||||
|
<h2>4. Funding Strategy — SSN Protection</h2>
|
||||||
|
|
||||||
|
<div class="note">
|
||||||
|
<strong>Key decision:</strong> Sam handles ALL loan/grant applications. Kiowa's SSN never goes on any financial document.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr><th>Point</th><th>Detail</th></tr>
|
||||||
|
<tr><td>Kiowa's ownership</td><td>15% — below the 20% SBA threshold for personal guarantee</td></tr>
|
||||||
|
<tr><td>Who signs loan applications</td><td>Sam only (as sole member of Holdings, the 85% owner)</td></tr>
|
||||||
|
<tr><td>Kiowa's SSN required?</td><td><strong>NO.</strong> Not for SBA, not for grants, not for Bankable, not for any lender.</td></tr>
|
||||||
|
<tr><td>If a lender asks for her SSN</td><td>Answer is NO — escalate to Sam. She is below the guarantee threshold.</td></tr>
|
||||||
|
<tr><td>Why this protects Kiowa</td><td>Her personal credit stays clean. No inquiries, no debt liability, no risk to her score.</td></tr>
|
||||||
|
<tr><td>EIN covers the business</td><td>42-4288652 — this is the business identity on all applications</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<ul class="checklist">
|
||||||
|
<li><input type="checkbox" id="c12"><label for="c12">Explained: Kiowa's SSN will NEVER be on any funding application</label></li>
|
||||||
|
<li><input type="checkbox" id="c13"><label for="c13">Kiowa confirms understanding — she is protected from personal liability on business debt</label></li>
|
||||||
|
<li><input type="checkbox" id="c14"><label for="c14">Confirmed: if anyone ever asks for her SSN related to the business, she says no and tells Sam</label></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- SECTION 5: FUNDING OVERVIEW -->
|
||||||
|
<h2>5. Funding Plan — Overview for Kiowa</h2>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<strong>Programs we're targeting (Sam handles applications):</strong>
|
||||||
|
<table>
|
||||||
|
<tr><th>#</th><th>Program</th><th>Type</th><th>Amount</th></tr>
|
||||||
|
<tr><td>1</td><td>South Bend Opportunity Fund</td><td>Loan + coaching</td><td>$1-30K</td></tr>
|
||||||
|
<tr><td>2</td><td>Bankable Black-Owned Fund</td><td>Low-interest loan</td><td>Up to $50K</td></tr>
|
||||||
|
<tr><td>3</td><td><s>Flagstar BIPOC Grant</s></td><td><s>Grant (free)</s></td><td><s>$5K</s> — CLOSED</td></tr>
|
||||||
|
<tr><td>4</td><td>SBA Loan</td><td>Traditional loan</td><td>$65-80K</td></tr>
|
||||||
|
<tr><td>5</td><td><s>USDA Business Builder</s></td><td><s>Grant (free)</s></td><td><s>Up to $100K</s> — TERMINATED</td></tr>
|
||||||
|
<tr><td>6</td><td>EASSI (South Bend solar)</td><td>Grant + tech assistance</td><td>TBD (inquiry sent)</td></tr>
|
||||||
|
</table>
|
||||||
|
<p style="font-size:.85rem;color:var(--taupe);margin-top:8px;">Full details: <a href="https://drive.google.com/file/d/1FOkB8nt-xLLYmvfEmAGJCdCN86SDp4av/view?usp=drive_link" target="_blank" style="color:var(--amber);">funding-research.html (Google Drive)</a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note">
|
||||||
|
<strong>Kiowa's opportunity:</strong> Grant Finder's Fee — if she identifies and secures any grant, she earns <strong>7.5% of the grant amount</strong> as a one-time bonus (per OA §6). Encourage her to research and apply!
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="checklist">
|
||||||
|
<li><input type="checkbox" id="c15"><label for="c15">Kiowa understands the funding pipeline</label></li>
|
||||||
|
<li><input type="checkbox" id="c16"><label for="c16">Reminded: grant finder's fee = 7.5% of any grant she secures (motivate her!)</label></li>
|
||||||
|
<li><input type="checkbox" id="c17"><label for="c17">Kiowa's immediate task: start researching Enterprise Zone locations for tax benefits</label></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- SECTION 6: NEXT STEPS -->
|
||||||
|
<h2>6. Immediate Next Steps</h2>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr><th>Task</th><th>Owner</th><th>Deadline</th><th>Done?</th></tr>
|
||||||
|
<tr><td>Sign Operating Agreement</td><td>Both</td><td>This meeting</td><td>☐</td></tr>
|
||||||
|
<tr><td>LLC acceptance confirmation (INBiz)</td><td>Sam</td><td>~48 hrs</td><td>☐</td></tr>
|
||||||
|
<tr><td>Open bank account (after LLC accepted)</td><td>Sam</td><td>Within 1 week</td><td>☐</td></tr>
|
||||||
|
<tr><td>Submit South Bend Opportunity Fund application</td><td>Sam</td><td>Within 2 weeks</td><td>☐</td></tr>
|
||||||
|
<tr><td>Submit Bankable application</td><td>Sam</td><td>Within 2 weeks</td><td>☐</td></tr>
|
||||||
|
<tr><td>Find replacement Location Manager (Savannah declined)</td><td>Kiowa</td><td>Within 2 weeks</td><td>☐</td></tr>
|
||||||
|
<tr><td>Validate supply checklist (Sheets)</td><td>Kiowa + new manager</td><td>When hired</td><td>☐</td></tr>
|
||||||
|
<tr><td>Start Enterprise Zone location research</td><td>Kiowa</td><td>Ongoing</td><td>☐</td></tr>
|
||||||
|
<tr><td>Review funding-research.html in Drive</td><td>Kiowa</td><td>This week</td><td>☐</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<!-- SECTION 7: OPEN DISCUSSION -->
|
||||||
|
<h2>7. Location Scouting — Action Item for Kiowa</h2>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<strong>Sam has identified potential lot locations.</strong> Kiowa's task:
|
||||||
|
<ul style="margin:8px 0 0;padding-left:20px;font-size:.9rem;">
|
||||||
|
<li>Contact the property owners/managers of each lot</li>
|
||||||
|
<li>Ask if they're willing to rent space for a mobile coffee trailer</li>
|
||||||
|
<li>Get preliminary terms (monthly rate, restrictions, utilities available)</li>
|
||||||
|
<li>Report back with findings</li>
|
||||||
|
</ul>
|
||||||
|
<p style="font-size:.85rem;color:var(--taupe);margin-top:8px;">This falls under OA §3.2 — "Site selection: finding and securing high-traffic lot locations"</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note">
|
||||||
|
<strong>Locations to contact (Sam identified):</strong><br>
|
||||||
|
<ol style="margin:8px 0 0;padding-left:20px;font-size:.9rem;">
|
||||||
|
<li><strong>Maxi's Food & Spirit Barn</strong> — 114 W Ireland Rd, South Bend, IN 46614 (CLOSED — lot may be available for lease)<br>
|
||||||
|
<a href="https://maps.app.goo.gl/LC6Aw2SXyFxV9Ho7A" target="_blank" style="color:var(--amber);">📍 View on Google Maps</a>
|
||||||
|
</li>
|
||||||
|
<li><strong>Big Lots</strong> — 1911 E Ireland Rd, South Bend, IN 46614 (PERMANENTLY CLOSED — large lot, high visibility on Ireland Rd)<br>
|
||||||
|
<a href="https://maps.app.goo.gl/XoYgFzn9zj8XjG1W7" target="_blank" style="color:var(--amber);">📍 View on Google Maps</a>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<textarea id="locations-list" placeholder="Add more locations here..." style="width:100%;min-height:60px;border:none;background:transparent;font-family:inherit;font-size:.88rem;color:var(--brown);resize:vertical;outline:none;line-height:1.7;margin-top:8px;border-top:1px solid var(--pink);padding-top:8px;"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="checklist">
|
||||||
|
<li><input type="checkbox" id="c25"><label for="c25">Shared location list with Kiowa</label></li>
|
||||||
|
<li><input type="checkbox" id="c26"><label for="c26">Kiowa confirms she'll reach out to property owners</label></li>
|
||||||
|
<li><input type="checkbox" id="c27"><label for="c27">Discussed: cross-reference locations with Enterprise Zone map for tax credits</label></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>8. Open Discussion</h2>
|
||||||
|
|
||||||
|
<ul class="checklist">
|
||||||
|
<li><input type="checkbox" id="c18"><label for="c18">Kiowa — any concerns, questions, or ideas?</label></li>
|
||||||
|
<li><input type="checkbox" id="c19"><label for="c19">Timeline expectations — are we aligned on the 2-year plan?</label></li>
|
||||||
|
<li><input type="checkbox" id="c20"><label for="c20">Communication cadence — how often do we check in? (weekly Zoom? text as-needed?)</label></li>
|
||||||
|
<li><input type="checkbox" id="c21"><label for="c21">Anything she's heard about grants/programs we haven't found yet?</label></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- SECTION 8: MEETING CLOSE -->
|
||||||
|
<h2>9. Meeting Close</h2>
|
||||||
|
|
||||||
|
<ul class="checklist">
|
||||||
|
<li><input type="checkbox" id="c22"><label for="c22">Recap action items — both parties confirm</label></li>
|
||||||
|
<li><input type="checkbox" id="c23"><label for="c23">Next meeting scheduled: <input type="date" id="next-meeting" style="font-size:.85rem;padding:2px 6px;border:1px solid var(--taupe);border-radius:4px;"></label></li>
|
||||||
|
<li><input type="checkbox" id="c24"><label for="c24">Recording saved (if Zoom recorded)</label></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- NOTES AREA -->
|
||||||
|
<h2>Meeting Notes</h2>
|
||||||
|
<div style="border:1px solid var(--pink);border-radius:8px;padding:20px;min-height:200px;background:var(--cream);">
|
||||||
|
<textarea id="meeting-notes" placeholder="Type meeting notes here..." style="width:100%;min-height:180px;border:none;background:transparent;font-family:inherit;font-size:.9rem;color:var(--brown);resize:vertical;outline:none;line-height:1.7;"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- SIGNATURE CONFIRMATION -->
|
||||||
|
<div class="sig-area">
|
||||||
|
<h3 style="margin-top:0;">Post-Meeting Confirmation</h3>
|
||||||
|
<p style="font-size:.88rem;">Both parties confirm the above topics were discussed and action items agreed upon.</p>
|
||||||
|
<div style="display:grid;grid-template-columns:1fr 1fr;gap:24px;">
|
||||||
|
<div>
|
||||||
|
<div class="sig-line"></div>
|
||||||
|
<div class="sig-label">Sam James — Date</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="sig-line"></div>
|
||||||
|
<div class="sig-label">Kiowa Scott — Date</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
SnS Hospitality Group LLC — Founder Meeting Agenda<br>
|
||||||
|
<em>Good Coffee. Great Vibes. On Purpose.</em>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const STORAGE_KEY = 'sns-hospitality-meeting-agenda';
|
||||||
|
|
||||||
|
function getState() {
|
||||||
|
const state = {
|
||||||
|
date: document.getElementById('meeting-date').value,
|
||||||
|
time: document.getElementById('meeting-time').value,
|
||||||
|
nextMeeting: document.getElementById('next-meeting').value,
|
||||||
|
notes: document.getElementById('meeting-notes').value,
|
||||||
|
locations: document.getElementById('locations-list').value,
|
||||||
|
checkboxes: {}
|
||||||
|
};
|
||||||
|
document.querySelectorAll('input[type="checkbox"]').forEach(cb => {
|
||||||
|
state.checkboxes[cb.id] = cb.checked;
|
||||||
|
});
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveState() {
|
||||||
|
const state = getState();
|
||||||
|
localStorage.setItem(STORAGE_KEY, JSON.stringify(state));
|
||||||
|
const status = document.getElementById('save-status');
|
||||||
|
status.textContent = '✓ Saved at ' + new Date().toLocaleTimeString();
|
||||||
|
setTimeout(() => status.textContent = '', 3000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadState() {
|
||||||
|
const saved = localStorage.getItem(STORAGE_KEY);
|
||||||
|
if (!saved) {
|
||||||
|
document.getElementById('save-status').textContent = 'No saved data found.';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const state = JSON.parse(saved);
|
||||||
|
if (state.date) document.getElementById('meeting-date').value = state.date;
|
||||||
|
if (state.time) document.getElementById('meeting-time').value = state.time;
|
||||||
|
if (state.nextMeeting) document.getElementById('next-meeting').value = state.nextMeeting;
|
||||||
|
if (state.notes) document.getElementById('meeting-notes').value = state.notes;
|
||||||
|
if (state.locations) document.getElementById('locations-list').value = state.locations;
|
||||||
|
if (state.checkboxes) {
|
||||||
|
Object.entries(state.checkboxes).forEach(([id, checked]) => {
|
||||||
|
const el = document.getElementById(id);
|
||||||
|
if (el) el.checked = checked;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
document.getElementById('save-status').textContent = '✓ Loaded.';
|
||||||
|
}
|
||||||
|
|
||||||
|
function downloadPDF() {
|
||||||
|
// Save first
|
||||||
|
saveState();
|
||||||
|
// Hide toolbar for print
|
||||||
|
document.getElementById('toolbar').style.display = 'none';
|
||||||
|
// Replace inputs with their values for clean PDF
|
||||||
|
const date = document.getElementById('meeting-date').value || '(not set)';
|
||||||
|
const time = document.getElementById('meeting-time').value || '(not set)';
|
||||||
|
const meetingInfo = document.querySelector('.meeting-info');
|
||||||
|
const originalInfo = meetingInfo.innerHTML;
|
||||||
|
meetingInfo.innerHTML = `<strong>Zoom Meeting</strong><br>Date: ${date}<br>Time: ${time}<br>Duration: ~45 min`;
|
||||||
|
// Replace textarea with div
|
||||||
|
const textarea = document.getElementById('meeting-notes');
|
||||||
|
const notesDiv = document.createElement('div');
|
||||||
|
notesDiv.style.cssText = 'white-space:pre-wrap;font-size:.9rem;line-height:1.7;color:#4B2E20;';
|
||||||
|
notesDiv.textContent = textarea.value || '(no notes)';
|
||||||
|
textarea.parentNode.replaceChild(notesDiv, textarea);
|
||||||
|
// Replace next meeting input
|
||||||
|
const nextInput = document.getElementById('next-meeting');
|
||||||
|
if (nextInput) {
|
||||||
|
const span = document.createElement('span');
|
||||||
|
span.textContent = nextInput.value || '(not set)';
|
||||||
|
nextInput.parentNode.replaceChild(span, nextInput);
|
||||||
|
}
|
||||||
|
// Trigger print (save as PDF from browser dialog)
|
||||||
|
window.print();
|
||||||
|
// Restore after print
|
||||||
|
setTimeout(() => {
|
||||||
|
document.getElementById('toolbar').style.display = 'flex';
|
||||||
|
meetingInfo.innerHTML = originalInfo;
|
||||||
|
// Reload to restore all dynamic elements
|
||||||
|
location.reload();
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Auto-save every 30 seconds
|
||||||
|
setInterval(saveState, 30000);
|
||||||
|
|
||||||
|
// Auto-load on page open
|
||||||
|
window.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const saved = localStorage.getItem(STORAGE_KEY);
|
||||||
|
if (saved) loadState();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
314
businesses/sns-hospitality-group/docs/nda-kiowa-scott.html
Normal file
314
businesses/sns-hospitality-group/docs/nda-kiowa-scott.html
Normal file
@ -0,0 +1,314 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Non-Disclosure Agreement — Kiowa Scott</title>
|
||||||
|
<style>
|
||||||
|
:root{
|
||||||
|
--navy:#0A1628;
|
||||||
|
--amber:#f59e0b;
|
||||||
|
--ink:#1a1f27;
|
||||||
|
--paper:#ffffff;
|
||||||
|
--muted:#5b6472;
|
||||||
|
--rule:#e2e6ec;
|
||||||
|
}
|
||||||
|
*{box-sizing:border-box}
|
||||||
|
body{
|
||||||
|
margin:0;
|
||||||
|
background:#f2f4f7;
|
||||||
|
font-family:"IBM Plex Sans",Inter,system-ui,Arial,sans-serif;
|
||||||
|
color:var(--ink);
|
||||||
|
line-height:1.7;
|
||||||
|
font-size:15px;
|
||||||
|
}
|
||||||
|
.doc{
|
||||||
|
max-width:820px;
|
||||||
|
margin:0 auto;
|
||||||
|
background:var(--paper);
|
||||||
|
padding:48px 64px 72px;
|
||||||
|
box-shadow:0 2px 24px rgba(10,22,40,.12);
|
||||||
|
}
|
||||||
|
.header{
|
||||||
|
border-bottom:3px solid var(--amber);
|
||||||
|
padding-bottom:20px;
|
||||||
|
margin-bottom:32px;
|
||||||
|
}
|
||||||
|
.header h1{
|
||||||
|
font-family:Oxanium,Sora,system-ui,sans-serif;
|
||||||
|
font-size:1.5rem;
|
||||||
|
color:var(--navy);
|
||||||
|
margin:0 0 6px;
|
||||||
|
letter-spacing:.5px;
|
||||||
|
}
|
||||||
|
.header .subtitle{
|
||||||
|
color:var(--amber);
|
||||||
|
font-weight:600;
|
||||||
|
font-size:1rem;
|
||||||
|
}
|
||||||
|
.meta{
|
||||||
|
display:flex;
|
||||||
|
flex-wrap:wrap;
|
||||||
|
gap:24px;
|
||||||
|
font-size:.88rem;
|
||||||
|
color:var(--muted);
|
||||||
|
margin-bottom:28px;
|
||||||
|
border-bottom:1px solid var(--rule);
|
||||||
|
padding-bottom:16px;
|
||||||
|
}
|
||||||
|
.meta b{color:var(--ink)}
|
||||||
|
h2{
|
||||||
|
font-family:Oxanium,Sora,system-ui,sans-serif;
|
||||||
|
font-size:1.05rem;
|
||||||
|
color:var(--navy);
|
||||||
|
border-bottom:2px solid var(--amber);
|
||||||
|
padding-bottom:6px;
|
||||||
|
margin:36px 0 14px;
|
||||||
|
}
|
||||||
|
p,li{margin-bottom:8px}
|
||||||
|
ul,ol{padding-left:22px}
|
||||||
|
.sig-block{margin-top:48px;padding-top:24px;border-top:2px solid var(--navy)}
|
||||||
|
.sig-line{margin:24px 0 4px;border-bottom:1px solid var(--ink);width:65%;height:24px}
|
||||||
|
.sig-label{font-size:.82rem;color:var(--muted);margin-bottom:18px}
|
||||||
|
footer{text-align:center;color:var(--muted);font-size:.78rem;padding:28px 24px 48px}
|
||||||
|
@media print{
|
||||||
|
body{background:#fff}
|
||||||
|
.doc{box-shadow:none;padding:24px 48px}
|
||||||
|
footer{display:none}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="doc">
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<h1>NON-DISCLOSURE AGREEMENT</h1>
|
||||||
|
<div class="subtitle">Mutual Confidentiality — Business Partnership</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="meta">
|
||||||
|
<div><b>Effective date:</b> ________________</div>
|
||||||
|
<div><b>State:</b> Indiana</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>This Non-Disclosure Agreement ("Agreement") is entered into as of the Effective Date
|
||||||
|
above by and between:</p>
|
||||||
|
|
||||||
|
<p><b>Party A (Disclosing Party):</b> Samuel S. James, individually, and in his capacity
|
||||||
|
as sole member of SnS Network Solutions Holdings LLC ("Holdings"), located at 759
|
||||||
|
Boxwood Drive, South Bend, IN 46641, on behalf of Holdings and its current and future
|
||||||
|
subsidiaries including SnS Hospitality Group LLC (collectively, the "Company").</p>
|
||||||
|
|
||||||
|
<p><b>Party B (Receiving Party):</b> Kiowa Scott, of ________________ (address).</p>
|
||||||
|
|
||||||
|
<p>The parties may each be referred to as a "Party" and collectively as the "Parties."</p>
|
||||||
|
|
||||||
|
<!-- §1 -->
|
||||||
|
<h2>1. Purpose</h2>
|
||||||
|
<p>The Parties are entering into a business relationship regarding the formation and
|
||||||
|
operation of <b>SnS Hospitality Group LLC</b> and its ventures (including "The Daily
|
||||||
|
Pour" coffee trailer fleet). In the course of this relationship, confidential
|
||||||
|
information will be shared between the Parties. This Agreement governs the protection
|
||||||
|
and use of that information.</p>
|
||||||
|
|
||||||
|
<!-- §2 -->
|
||||||
|
<h2>2. Consideration</h2>
|
||||||
|
<p>In exchange for the mutual promises contained herein, and for access to the
|
||||||
|
business opportunity described in the SnS Hospitality Group LLC Operating Agreement
|
||||||
|
(including the equity, distributions, and partnership rights outlined therein), the
|
||||||
|
Receiving Party agrees to the confidentiality obligations below. Both Parties
|
||||||
|
acknowledge that this consideration is adequate and sufficient.</p>
|
||||||
|
|
||||||
|
<!-- §3 -->
|
||||||
|
<h2>3. Confidential Information Defined</h2>
|
||||||
|
<p>"Confidential Information" means any non-public information disclosed by either Party
|
||||||
|
to the other in connection with the business relationship, including but not limited
|
||||||
|
to:</p>
|
||||||
|
<ul>
|
||||||
|
<li><b>Personal information:</b> Social Security Numbers, dates of birth, home
|
||||||
|
addresses, banking and financial account details, government-issued identification
|
||||||
|
numbers, tax identification numbers (EIN), and information in IRS or state
|
||||||
|
correspondence</li>
|
||||||
|
<li><b>Business information:</b> Business plans, financial statements, revenue figures,
|
||||||
|
profit margins, pricing strategies, supplier agreements, lease terms, vendor
|
||||||
|
contracts, customer lists, and growth strategies</li>
|
||||||
|
<li><b>Operational information:</b> Standard operating procedures, recipes, menu
|
||||||
|
formulations, training materials, and proprietary systems</li>
|
||||||
|
<li><b>Intellectual property:</b> Trademarks, brand assets, logos, marketing
|
||||||
|
materials, domain names, software, and trade secrets</li>
|
||||||
|
<li><b>Partnership terms:</b> Equity percentages, vesting schedules, buyback terms,
|
||||||
|
and any terms of the Operating Agreement not publicly disclosed</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- §4 -->
|
||||||
|
<h2>4. Exclusions</h2>
|
||||||
|
<p>Confidential Information does <b>not</b> include information that:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Is or becomes publicly available through no fault of the Receiving Party</li>
|
||||||
|
<li>Was already lawfully known to the Receiving Party before disclosure, as
|
||||||
|
demonstrated by written records predating this Agreement</li>
|
||||||
|
<li>Is independently developed by the Receiving Party without use of or reference to
|
||||||
|
the Confidential Information</li>
|
||||||
|
<li>Is received from a third party who is not bound by confidentiality obligations
|
||||||
|
regarding that information</li>
|
||||||
|
<li>Is required to be disclosed by law, court order, or government authority —
|
||||||
|
provided the Receiving Party gives the Disclosing Party prompt written notice
|
||||||
|
(where legally permitted) before disclosing, to allow the Disclosing Party an
|
||||||
|
opportunity to seek a protective order</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- §5 -->
|
||||||
|
<h2>5. Obligations of the Receiving Party</h2>
|
||||||
|
<p>The Receiving Party shall:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Use Confidential Information <b>solely</b> for purposes related to the business
|
||||||
|
relationship (formation, operation, and management of SnS Hospitality Group LLC
|
||||||
|
and its ventures)</li>
|
||||||
|
<li>Not disclose Confidential Information to any third party without the Disclosing
|
||||||
|
Party's prior written consent, except as necessary to complete authorized filings
|
||||||
|
(e.g., submitting information to the Indiana Secretary of State or IRS as part of
|
||||||
|
entity formation)</li>
|
||||||
|
<li>Protect Confidential Information with at least the same degree of care used to
|
||||||
|
protect her own confidential information, and no less than reasonable care</li>
|
||||||
|
<li>Not store SSNs, banking details, or EINs in unsecured files, shared drives,
|
||||||
|
unencrypted messages, or any system without password protection</li>
|
||||||
|
<li>Not use Confidential Information for personal benefit or any purpose outside the
|
||||||
|
business relationship</li>
|
||||||
|
<li>Limit access to Confidential Information to only those individuals who have a
|
||||||
|
need to know and who are bound by confidentiality obligations at least as
|
||||||
|
protective as those in this Agreement</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- §6 -->
|
||||||
|
<h2>6. Return and Destruction</h2>
|
||||||
|
<p>Upon termination of the business relationship, or upon the Disclosing Party's written
|
||||||
|
request, the Receiving Party shall within <b>14 days</b>:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Return all physical materials containing Confidential Information</li>
|
||||||
|
<li>Permanently delete all digital copies of Confidential Information (including
|
||||||
|
backups, downloads, screenshots, and copies in any form)</li>
|
||||||
|
<li>Provide written confirmation that all Confidential Information has been returned
|
||||||
|
or destroyed</li>
|
||||||
|
</ul>
|
||||||
|
<p><b>Exception:</b> The Receiving Party may retain copies of filings she submitted on
|
||||||
|
the Company's behalf (e.g., Articles of Organization, EIN applications) as required by
|
||||||
|
law or for her personal tax records.</p>
|
||||||
|
|
||||||
|
<!-- §7 -->
|
||||||
|
<h2>7. Term and Duration</h2>
|
||||||
|
<ul>
|
||||||
|
<li><b>Personal information</b> (SSN, financial account details, government IDs):
|
||||||
|
protected <b>indefinitely</b> — this obligation never expires.</li>
|
||||||
|
<li><b>Trade secrets</b> (proprietary systems, recipes, operational processes that
|
||||||
|
derive value from being secret): protected <b>for as long as the information
|
||||||
|
remains a trade secret</b> under Indiana's Uniform Trade Secrets Act (IC 24-2-3).</li>
|
||||||
|
<li><b>All other business information:</b> protected for <b>3 years</b> after the
|
||||||
|
termination of the business relationship between the Parties.</li>
|
||||||
|
</ul>
|
||||||
|
<p>This Agreement is effective as of the date signed and survives termination of any
|
||||||
|
individual venture, the Operating Agreement, or the business relationship itself, for
|
||||||
|
the durations stated above.</p>
|
||||||
|
|
||||||
|
<!-- §8 -->
|
||||||
|
<h2>8. Remedies</h2>
|
||||||
|
<p>The Receiving Party acknowledges that unauthorized disclosure or use of Confidential
|
||||||
|
Information — particularly personal information such as Social Security Numbers — may
|
||||||
|
cause <b>irreparable harm</b> for which monetary damages alone are inadequate. The
|
||||||
|
Disclosing Party is entitled to seek:</p>
|
||||||
|
<ul>
|
||||||
|
<li><b>Injunctive relief</b> (court order to stop the disclosure immediately)</li>
|
||||||
|
<li><b>Monetary damages</b> (actual damages suffered as a result of the breach)</li>
|
||||||
|
<li><b>Attorney's fees and costs</b> incurred in enforcing this Agreement</li>
|
||||||
|
<li>Any other remedies available at law or equity</li>
|
||||||
|
</ul>
|
||||||
|
<p>These remedies are in addition to (not instead of) any forfeiture, buyback, or
|
||||||
|
removal provisions in the SnS Hospitality Group LLC Operating Agreement.</p>
|
||||||
|
|
||||||
|
<!-- §9 -->
|
||||||
|
<h2>9. Relationship to Operating Agreement</h2>
|
||||||
|
<p>This NDA is a standalone agreement that exists independently of the SnS Hospitality
|
||||||
|
Group LLC Operating Agreement. However:</p>
|
||||||
|
<ul>
|
||||||
|
<li>A <b>material breach of this NDA</b> constitutes grounds for <b>Forfeiture for
|
||||||
|
Cause</b> under the Operating Agreement (§8 of that document)</li>
|
||||||
|
<li>This NDA does not grant the Receiving Party any ownership, equity, or membership
|
||||||
|
rights — those are governed solely by the Operating Agreement</li>
|
||||||
|
<li>Termination of the Operating Agreement does not terminate this NDA — the
|
||||||
|
confidentiality obligations survive per §7 above</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- §10 -->
|
||||||
|
<h2>10. No License or Rights Granted</h2>
|
||||||
|
<p>Nothing in this Agreement grants the Receiving Party any ownership, license, or
|
||||||
|
intellectual property rights in the Company's brand, IP, systems, or business. Access
|
||||||
|
to Confidential Information is for the Purpose only and does not create any right to
|
||||||
|
use, reproduce, or commercialize that information independently.</p>
|
||||||
|
|
||||||
|
<!-- §11 -->
|
||||||
|
<h2>11. Whistleblower Protection</h2>
|
||||||
|
<p>Nothing in this Agreement prohibits the Receiving Party from:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Reporting suspected illegal activity to any federal, state, or local government
|
||||||
|
agency or official</li>
|
||||||
|
<li>Cooperating with a government investigation</li>
|
||||||
|
<li>Making disclosures protected under whistleblower provisions of federal or state
|
||||||
|
law</li>
|
||||||
|
</ul>
|
||||||
|
<p>The Receiving Party is not required to notify the Disclosing Party before making any
|
||||||
|
such report or disclosure.</p>
|
||||||
|
|
||||||
|
<!-- §12 -->
|
||||||
|
<h2>12. Governing Law and Disputes</h2>
|
||||||
|
<p>This Agreement is governed by the laws of the <b>State of Indiana</b>. Any dispute
|
||||||
|
arising under this Agreement shall be resolved by <b>binding arbitration</b> in St.
|
||||||
|
Joseph County, Indiana, under Indiana law. The prevailing party in any dispute shall be
|
||||||
|
entitled to recover reasonable attorney's fees and costs.</p>
|
||||||
|
|
||||||
|
<!-- §13 -->
|
||||||
|
<h2>13. Miscellaneous</h2>
|
||||||
|
<ul>
|
||||||
|
<li><b>Entire agreement:</b> This Agreement constitutes the entire understanding
|
||||||
|
between the Parties regarding confidentiality of the information described herein
|
||||||
|
and supersedes any prior oral or written understanding on that subject.</li>
|
||||||
|
<li><b>Amendment:</b> This Agreement may only be amended in a writing signed by both
|
||||||
|
Parties.</li>
|
||||||
|
<li><b>Severability:</b> If any provision is held invalid or unenforceable, the
|
||||||
|
remaining provisions remain in full force and effect.</li>
|
||||||
|
<li><b>Assignment:</b> This Agreement may not be assigned by the Receiving Party
|
||||||
|
without the Disclosing Party's written consent.</li>
|
||||||
|
<li><b>Counterparts:</b> This Agreement may be signed in counterparts (including
|
||||||
|
electronic signatures), each of which constitutes an original.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- EXECUTION -->
|
||||||
|
<div class="sig-block">
|
||||||
|
<h2 style="margin-top:0">Execution</h2>
|
||||||
|
<p>The undersigned acknowledge and agree to the terms of this Non-Disclosure Agreement
|
||||||
|
as of the Effective Date first written above.</p>
|
||||||
|
|
||||||
|
<p style="margin-top:28px;font-weight:700;color:var(--navy)">DISCLOSING PARTY — Samuel S. James</p>
|
||||||
|
<div class="sig-line"></div>
|
||||||
|
<div class="sig-label">Signature</div>
|
||||||
|
<p><b>Printed name:</b> Samuel S. James</p>
|
||||||
|
<p><b>Title:</b> Sole Member, SnS Network Solutions Holdings LLC</p>
|
||||||
|
<div class="sig-line" style="width:35%"></div>
|
||||||
|
<div class="sig-label">Date</div>
|
||||||
|
|
||||||
|
<p style="margin-top:28px;font-weight:700;color:var(--navy)">RECEIVING PARTY — Kiowa Scott</p>
|
||||||
|
<div class="sig-line"></div>
|
||||||
|
<div class="sig-label">Signature</div>
|
||||||
|
<p><b>Printed name:</b> Kiowa Scott</p>
|
||||||
|
<div class="sig-line" style="width:35%"></div>
|
||||||
|
<div class="sig-label">Date</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
Review with an Indiana-licensed attorney before signing.<br>
|
||||||
|
SnS Network Solutions Holdings LLC • 759 Boxwood Drive, South Bend, IN 46641
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -1,12 +0,0 @@
|
|||||||
# Indian Food Truck — PENDING
|
|
||||||
|
|
||||||
**Entity:** Will operate under SnS Hospitality Group LLC
|
|
||||||
**Status:** Awaiting proposal from Indian staff
|
|
||||||
**Type:** Mobile/trailer-based (consistent with Hospitality Group model)
|
|
||||||
|
|
||||||
## Next Steps
|
|
||||||
- [ ] Receive and review staff proposal
|
|
||||||
- [ ] Confirm investment amount
|
|
||||||
- [ ] Confirm menu concept and target market
|
|
||||||
- [ ] Identify locations (same high-traffic strategy as coffee trailers)
|
|
||||||
- [ ] Draft operating requirements (288+ operating days, revenue targets)
|
|
||||||
@ -1,341 +0,0 @@
|
|||||||
# Operating Agreement for Foodtruck1 LLC
|
|
||||||
|
|
||||||
> **Draft / template — not legal advice.** This is a working draft for a
|
|
||||||
> **two-member** Indiana LLC that is a subsidiary of SnS Network Solutions Holdings
|
|
||||||
> LLC. Unlike the other subsidiaries, this one is **not** wholly owned by Holdings —
|
|
||||||
> it has a second Member holding a performance-vesting interest. Have an
|
|
||||||
> Indiana-licensed attorney and a CPA review and finalize this before either party
|
|
||||||
> signs. Items in `[brackets]` need your specific information; items marked
|
|
||||||
> `[TODO — attorney/CPA review]` should be confirmed with counsel.
|
|
||||||
|
|
||||||
**Entity:** `[Foodtruck1 LLC — confirm final legal name once filed]` (the "Company")
|
|
||||||
**Parent:** SnS Network Solutions Holdings LLC (the "Parent Company"), 85% Member
|
|
||||||
**Second Member:** `Kiowa Scott` ("Kiowa"), 15% Member (vesting)
|
|
||||||
**State of formation:** Indiana
|
|
||||||
**Effective date:** `[Effective Date — the date this Agreement is adopted]`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 1. Formation and Purpose
|
|
||||||
|
|
||||||
This Operating Agreement (the "Agreement") is entered into by the Members, **SnS
|
|
||||||
Network Solutions Holdings LLC** (the "Parent Company") and **`Kiowa Scott`**
|
|
||||||
("Kiowa"), to govern the operations of **Foodtruck1 LLC**, a limited
|
|
||||||
liability company organized under the Indiana Business Flexibility Act (Indiana Code
|
|
||||||
§ 23-18).
|
|
||||||
|
|
||||||
The Company is an **operating subsidiary** formed to operate a mobile food truck
|
|
||||||
business. Unlike the Parent Company, the Company **does** conduct client-facing
|
|
||||||
work and carries the operating liability associated with that work (food service,
|
|
||||||
a commercial vehicle, and — depending on the staffing model chosen — employees),
|
|
||||||
which is why it is held in a separate LLC, walling that liability off from the
|
|
||||||
Parent Company and from every sibling subsidiary.
|
|
||||||
|
|
||||||
## 2. Registered Office and Registered Agent
|
|
||||||
|
|
||||||
- **Principal office:** `[Principal business address]`
|
|
||||||
- **Registered agent:** `[Registered agent name]`
|
|
||||||
- **Registered office address:** `[Indiana street address of the registered agent]`
|
|
||||||
|
|
||||||
|
|
||||||
## 3. Members and Ownership
|
|
||||||
|
|
||||||
| Member | Membership Interest | Capital Contributed |
|
|
||||||
|---|---|---|
|
|
||||||
| SnS Network Solutions Holdings LLC | 85% | `[$ amount — Sam's invested capital in this venture]` |
|
|
||||||
| Kiowa | 15% (subject to vesting — see §5) | $0 |
|
|
||||||
|
|
||||||
Kiowa is admitted as a full Member — with voting and economic rights — as of the
|
|
||||||
Effective Date, granted in exchange for her services (business formation/paperwork
|
|
||||||
work and originating this venture), not for a cash contribution. Her 15% interest is
|
|
||||||
subject to the vesting and forfeiture terms in §5, which control over any
|
|
||||||
inconsistent provision elsewhere in this Agreement.
|
|
||||||
|
|
||||||
Allocations of profit and loss for tax purposes are made in proportion to each
|
|
||||||
Member's Membership Interest, subject to §5 and §8.
|
|
||||||
`[TODO — CPA review: confirm capital account mechanics for a $0-contribution,
|
|
||||||
services-for-equity Member, and how allocations should work while her interest is
|
|
||||||
partly unvested — see §5 and §8.]`
|
|
||||||
|
|
||||||
## 4. Management
|
|
||||||
|
|
||||||
The Company shall be **Member-managed**. Because the Parent Company holds a Membership
|
|
||||||
Interest majority (85%), the Parent Company — acting through its authorized
|
|
||||||
representative, **Samuel S. James** — retains sole authority to approve or reject
|
|
||||||
major Company decisions, including:
|
|
||||||
|
|
||||||
- Entering into contracts, leases, and vendor/supplier agreements;
|
|
||||||
- Opening and controlling the Company's bank and financial accounts;
|
|
||||||
- Procuring insurance and equipment;
|
|
||||||
- Hiring and directing employees, or engaging an independent operator, per the
|
|
||||||
staffing model chosen (see §10);
|
|
||||||
- Admitting any new member (which requires amending this Agreement — see §12).
|
|
||||||
|
|
||||||
**Day-to-day management** (routes, customers, daily operations) is delegated to
|
|
||||||
`[TODO: designate — Kiowa, a hired operator under a lease/license arrangement, or a
|
|
||||||
hired manager under a direct-hire staffing model; pending the staffing-model decision
|
|
||||||
referenced in `../requirements.md`]`, who reports to Samuel S. James as the Parent
|
|
||||||
Company's authorized representative.
|
|
||||||
|
|
||||||
## 5. Vesting and Forfeiture of Kiowa's Membership Interest
|
|
||||||
|
|
||||||
This section is the controlling reference for Kiowa's equity — consistent with, and
|
|
||||||
incorporating, the terms of
|
|
||||||
[`../../00-sns-holding/docs/kiowa-equity-framework.md`](../../00-sns-holding/docs/kiowa-equity-framework.md).
|
|
||||||
|
|
||||||
**5.1 Vesting schedule.** Measured from the Company's **Opening Date** (the date the
|
|
||||||
Company begins revenue-generating operations — `[TODO: record actual date once
|
|
||||||
known]` — not the date this Agreement is signed or the date Articles of Organization
|
|
||||||
are filed):
|
|
||||||
|
|
||||||
| Milestone (from Opening Date) | Vests | Condition |
|
|
||||||
|---|---|---|
|
|
||||||
| 3 months | 3.75% (cumulative 3.75%) | Time-based, unconditional |
|
|
||||||
| 6 months | 3.75% (cumulative 7.50%) | Time-based, unconditional |
|
|
||||||
| 9 months | 3.75% (cumulative 11.25%) | Time-based, unconditional |
|
|
||||||
| 12 months | final 3.75% (cumulative 15.00%) | Conditional — only vests if cumulative net profit has reached **2x** the Parent Company's invested capital (per §3) by month 12 |
|
|
||||||
|
|
||||||
**5.2 Acceleration.** If the Company's cumulative net profit reaches 2x the Parent
|
|
||||||
Company's invested capital at any point before the 12-month mark, Kiowa's interest
|
|
||||||
immediately and fully vests to 15%, regardless of which quarterly milestone has or
|
|
||||||
has not yet passed.
|
|
||||||
|
|
||||||
**5.3 Forfeiture and repurchase.** If cumulative net profit has **not** reached 2x
|
|
||||||
the Parent Company's invested capital by the 12-month mark, the final 3.75% tranche
|
|
||||||
does not vest. The Parent Company has the option (exercisable within
|
|
||||||
`[TODO — e.g., 90 days]` of the 12-month mark) to repurchase that unvested tranche
|
|
||||||
from Kiowa for **`[$1.00 — nominal consideration, given no cash was paid in]`**. Upon
|
|
||||||
exercise, Kiowa's Membership Interest permanently reduces to whatever had vested
|
|
||||||
through month 9 (up to 11.25%), and the repurchased tranche is transferred to the
|
|
||||||
Parent Company. There is no cure period and no later opportunity to re-earn the
|
|
||||||
forfeited tranche for this venture.
|
|
||||||
|
|
||||||
**5.4 Distributions during the vesting period.** Until any tranche is forfeited under
|
|
||||||
§5.3, Kiowa receives distributions on her full 15% Membership Interest as if fully
|
|
||||||
vested (consistent with profits-interest tax treatment — see §8). Forfeiture under
|
|
||||||
§5.3 applies only prospectively: distributions already paid to Kiowa before the
|
|
||||||
forfeiture date are not clawed back.
|
|
||||||
`[TODO — CPA review: confirm this "full distributions during vesting, forfeiture only
|
|
||||||
prospective" approach is consistent with, or needs a formal forfeiture-allocation
|
|
||||||
provision for, profits-interest safe-harbor tax treatment.]`
|
|
||||||
|
|
||||||
**5.5 Independence from other ventures.** This vesting arrangement applies only to
|
|
||||||
Kiowa's interest in this Company. It has no effect on, and is not affected by, any
|
|
||||||
equity Kiowa may be granted in any other subsidiary she originates.
|
|
||||||
|
|
||||||
|
|
||||||
## 6. Bank Accounts, Books, and Records
|
|
||||||
|
|
||||||
- The Company shall maintain **its own bank account(s)**, separate from the Parent
|
|
||||||
Company's and from every sibling subsidiary's accounts.
|
|
||||||
- The Company shall keep accurate books and records of its finances, contracts, and
|
|
||||||
material decisions — including records sufficient to verify the vesting milestones
|
|
||||||
in §5 (cumulative net profit, by quarter, from the Opening Date) — retained at the
|
|
||||||
principal office as required by Indiana law.
|
|
||||||
|
|
||||||
## 7. Capital Contributions and Additional Distributions
|
|
||||||
|
|
||||||
- **Capital contributions:** The Parent Company may contribute additional capital to
|
|
||||||
the Company as needed; contributions are recorded in the Company's books against
|
|
||||||
its capital account. Kiowa is not required or expected to make cash contributions.
|
|
||||||
- **Distributions:** Subject to §5.4, distributions of available profits are made pro
|
|
||||||
rata to the Members' respective Membership Interests, at the times and amounts the
|
|
||||||
Parent Company determines under §4, subject to the Company's financial obligations
|
|
||||||
and applicable law (the Company may not make a distribution that would render it
|
|
||||||
unable to pay its debts as they come due).
|
|
||||||
|
|
||||||
## 8. Tax Treatment
|
|
||||||
|
|
||||||
With two Members, the Company is, by default, treated as a **partnership** for U.S.
|
|
||||||
federal income tax purposes; each Member reports their share of income and expense
|
|
||||||
via a Schedule K-1. Because the Parent Company is itself a multi-member LLC taxed as
|
|
||||||
a partnership, this creates a **tiered partnership structure** requiring coordination
|
|
||||||
between the Company's and the Parent Company's returns.
|
|
||||||
`[TODO — CPA/attorney review: (1) confirm Kiowa's interest is structured and
|
|
||||||
documented as a profits interest under Rev. Proc. 93-27/2001-43, not a capital
|
|
||||||
interest, to avoid immediate taxable income to her on grant; (2) confirm whether
|
|
||||||
Kiowa should file a protective Section 83(b) election within 30 days of the Effective
|
|
||||||
Date given the forfeiture condition in §5.3 — this is a hard IRS deadline; (3) confirm
|
|
||||||
tiered-partnership filing mechanics between this Company and the Parent Company; (4) a
|
|
||||||
Form 1065 will be required for this Company.]`
|
|
||||||
|
|
||||||
- **EIN:** `[Company EIN — obtain from the IRS once Articles of Organization are filed]`
|
|
||||||
- **Fiscal year:** `[Fiscal year — typically the calendar year]`
|
|
||||||
|
|
||||||
## 9. Liability and Indemnification
|
|
||||||
|
|
||||||
To the fullest extent permitted by Indiana law:
|
|
||||||
|
|
||||||
- No Member shall be **personally liable** for the debts, obligations, or
|
|
||||||
liabilities of the Company solely by reason of being a member; and
|
|
||||||
- The Company shall **indemnify and hold harmless** each Member (and any authorized
|
|
||||||
manager or agent) against claims, losses, and expenses arising from the good-faith
|
|
||||||
management of the Company within the scope of authority granted under this
|
|
||||||
Agreement, except for acts of fraud, willful misconduct, bad faith, or acts taken
|
|
||||||
outside that authority.
|
|
||||||
`[TODO — attorney review: confirm indemnification scope, especially given the
|
|
||||||
Company's operating (not passive-holding) risk profile.]`
|
|
||||||
|
|
||||||
## 10. Insurance, Licensing, and Staffing
|
|
||||||
|
|
||||||
Given the Company's mobile food-service operations, the following are required
|
|
||||||
before operations begin (see `../requirements.md` for current cost estimates and
|
|
||||||
status):
|
|
||||||
|
|
||||||
- **Workers' Compensation** — mandatory under Indiana law from employee #1, if the
|
|
||||||
direct-hire staffing model is used.
|
|
||||||
- **General Liability** — required for the mobile food vendor permit.
|
|
||||||
- **Commercial Auto** — required for the truck; a personal auto policy will not cover
|
|
||||||
commercial use.
|
|
||||||
- **Mobile food vendor / health department permit** — required from South Bend /
|
|
||||||
St. Joseph County before operating.
|
|
||||||
|
|
||||||
**Staffing model:** Direct W-2 hire — 1 full-time cook/manager ($24/hr) and 2
|
|
||||||
part-time crew members ($12/hr, 25 hrs/wk each). Total loaded monthly labor:
|
|
||||||
approximately $7,800.
|
|
||||||
|
|
||||||
## 11. Minimum Operating Requirements & Financial Targets
|
|
||||||
|
|
||||||
The Company shall operate a minimum of **288 days per calendar year** (6 days per
|
|
||||||
week, 48 weeks), accounting for up to 4 weeks of planned downtime due to weather,
|
|
||||||
maintenance, holidays, or unforeseen events.
|
|
||||||
|
|
||||||
### 11.1 Investment & Loan Repayment
|
|
||||||
|
|
||||||
- **Total initial investment:** $50,000 (contributed by the Parent Company)
|
|
||||||
- **Repayment target:** Full repayment of invested capital within **24 months** of
|
|
||||||
the Opening Date
|
|
||||||
- **Required pre-tax annual profit (to meet repayment after taxes):** $38,462/yr
|
|
||||||
(~$3,205/mo at the Parent Company's 75% share, grossed up for ~35% combined
|
|
||||||
federal, state, and self-employment taxes)
|
|
||||||
|
|
||||||
### 11.2 Monthly Financial Obligations
|
|
||||||
|
|
||||||
The Company's fixed monthly costs, payable regardless of revenue:
|
|
||||||
|
|
||||||
| Item | Monthly Cost |
|
|
||||||
|------|-------------|
|
|
||||||
| Labor (loaded — cook + 2 PT crew + employer taxes) | $7,800 |
|
|
||||||
| Truck payment (48mo @ ~8%) | $854 |
|
|
||||||
| Workers' Compensation insurance | $150 |
|
|
||||||
| General Liability insurance | $42 |
|
|
||||||
| Commercial Auto insurance | $170 |
|
|
||||||
| Commissary kitchen rental | $400 |
|
|
||||||
| Fuel | $500 |
|
|
||||||
| Software (payroll + ERP) | $100 |
|
|
||||||
| LegalShield (legal services) | $60 |
|
|
||||||
| Phone/POS | $100 |
|
|
||||||
| Miscellaneous/repairs buffer | $490 |
|
|
||||||
| **Total fixed monthly** | **$10,666** |
|
|
||||||
|
|
||||||
During downtime weeks, fixed costs continue. Labor reduces to cook-only retention
|
|
||||||
(~$1,085/wk loaded) to avoid losing a key employee; part-time crew is zeroed.
|
|
||||||
|
|
||||||
### 11.3 Revenue Targets
|
|
||||||
|
|
||||||
Assuming 30% food cost and 288 operating days per year:
|
|
||||||
|
|
||||||
| Metric | Target |
|
|
||||||
|--------|--------|
|
|
||||||
| **Breakeven revenue (annual)** | $182,640 ($15,220/mo) |
|
|
||||||
| **Revenue to meet 2-year payback** | $232,641/yr ($808/operating day) |
|
|
||||||
| **Minimum daily revenue target** | $808/day |
|
|
||||||
| **At $14/plate** | **58 customers/day** |
|
|
||||||
| **At $15/plate** | 54 customers/day |
|
|
||||||
| **At $12/plate** | 68 customers/day |
|
|
||||||
|
|
||||||
### 11.4 Reporting
|
|
||||||
|
|
||||||
The Company shall maintain monthly records sufficient to track:
|
|
||||||
- Total operating days vs. the 288-day minimum
|
|
||||||
- Daily revenue and customer count
|
|
||||||
- Cumulative net profit vs. the invested capital repayment schedule
|
|
||||||
- Food cost percentage (target: ≤30% of revenue)
|
|
||||||
|
|
||||||
These records support the vesting milestones in §5 and are available to both Members
|
|
||||||
upon request.
|
|
||||||
|
|
||||||
## 12. Transfer of Membership Interest
|
|
||||||
|
|
||||||
- **Economic vs. management rights.** A Member may assign, pledge, or transfer the
|
|
||||||
economic rights (right to distributions/profits) in all or part of their Membership
|
|
||||||
Interest at that Member's discretion, without that alone making the transferee a
|
|
||||||
member.
|
|
||||||
- **Admission as a member.** A transferee is admitted as a member — with voting and
|
|
||||||
management rights, not just economic rights — only upon amendment of this Agreement
|
|
||||||
under §12.
|
|
||||||
- **Repurchase right.** The Parent Company's repurchase right over Kiowa's unvested
|
|
||||||
tranche under §5.3 is not a general transfer restriction — it applies only in the
|
|
||||||
specific forfeiture circumstance described there.
|
|
||||||
`[TODO — attorney review: consider whether a right of first refusal should apply to
|
|
||||||
either Member's Membership Interest before any transfer to a third party is
|
|
||||||
attempted.]`
|
|
||||||
|
|
||||||
## 13. Amendments
|
|
||||||
|
|
||||||
This Agreement may be amended only by a **written instrument signed by all Members**.
|
|
||||||
`[TODO — attorney review: given the Parent Company holds a voting majority (85%),
|
|
||||||
consider whether any amendment that would change Kiowa's Membership Interest, the §5
|
|
||||||
vesting/forfeiture terms, or her distribution rights should specifically require
|
|
||||||
Kiowa's consent, even though general amendments could otherwise be read to need only
|
|
||||||
majority approval.]`
|
|
||||||
|
|
||||||
## 14. Dissolution
|
|
||||||
|
|
||||||
The Company shall continue in perpetuity unless dissolved by:
|
|
||||||
|
|
||||||
- The written election of Members holding a majority of the Membership Interests; or
|
|
||||||
- Operation of Indiana law.
|
|
||||||
|
|
||||||
Upon dissolution, the Company's assets shall be applied first to creditors, then
|
|
||||||
distributed to the Members pro rata in proportion to their (then-vested) Membership
|
|
||||||
Interests, after which Articles of Dissolution shall be filed with the Indiana
|
|
||||||
Secretary of State.
|
|
||||||
|
|
||||||
## 14. Governing Law and Severability
|
|
||||||
|
|
||||||
This Agreement is governed by and construed in accordance with the laws of the
|
|
||||||
**State of Indiana**. If any provision is held invalid or unenforceable, the
|
|
||||||
remaining provisions remain in full force and effect.
|
|
||||||
|
|
||||||
## 15. Definitions
|
|
||||||
|
|
||||||
- **"Company"** — Foodtruck1 LLC.
|
|
||||||
- **"Parent Company"** — SnS Network Solutions Holdings LLC.
|
|
||||||
- **"Kiowa"** — `Kiowa Scott`, the Company's second Member.
|
|
||||||
- **"Membership Interest"** — a Member's ownership, economic, and (unless limited)
|
|
||||||
management rights in the Company, expressed as a percentage per §3, subject to §5.
|
|
||||||
- **"Opening Date"** — the date the Company begins revenue-generating operations, as
|
|
||||||
defined in §5.1.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Execution
|
|
||||||
|
|
||||||
The undersigned, being all of the Members of Foodtruck1 LLC, adopt and agree to this
|
|
||||||
Operating Agreement as of the Effective Date first written above.
|
|
||||||
|
|
||||||
**MEMBER — 85% Membership Interest**
|
|
||||||
|
|
||||||
By: ______________________________________
|
|
||||||
|
|
||||||
Name: **Samuel S. James**
|
|
||||||
|
|
||||||
Title: Authorized Representative / Sole Member of SnS Network Solutions Holdings LLC
|
|
||||||
|
|
||||||
Date: ______________________________________
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
**MEMBER — 15% Membership Interest (vesting per §5)**
|
|
||||||
|
|
||||||
Signature: ______________________________________
|
|
||||||
|
|
||||||
Printed name: **`Kiowa Scott`**
|
|
||||||
|
|
||||||
Date: ______________________________________
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
*Prepared as a working draft. Review with an Indiana-licensed attorney and a CPA
|
|
||||||
before either party signs.*
|
|
||||||
@ -1,65 +0,0 @@
|
|||||||
# Food Truck #1 — Requirements & Planning
|
|
||||||
|
|
||||||
**Entity:** subsidiary of SnS Network Solutions Holdings LLC — **but unlike the other
|
|
||||||
subsidiaries, Holdings is NOT the sole member here.** Foodtruck1 LLC will have two
|
|
||||||
Members:
|
|
||||||
- **SnS Network Solutions Holdings LLC** — 85%, holding Sam's ownership stake (keeps
|
|
||||||
Sam's interest inside the liability/succession structure described in
|
|
||||||
[`../00-sns-holding/00-sns-holding.md`](../00-sns-holding/00-sns-holding.md))
|
|
||||||
- **Kiowa** — 15%, granted for $0 cash under
|
|
||||||
[`../00-sns-holding/docs/kiowa-equity-framework.md`](../00-sns-holding/docs/kiowa-equity-framework.md),
|
|
||||||
vesting quarterly over 12 months from Foodtruck1's Opening Date, contingent on
|
|
||||||
cumulative net profit reaching 2x Sam's invested capital in Foodtruck1 by month 12
|
|
||||||
|
|
||||||
This does **not** change Holdings' own cap table — Sam remains the sole owner of
|
|
||||||
SnS Network Solutions Holdings LLC itself (see `../00-sns-holding/docs/operating-agreement.md`).
|
|
||||||
The two-member structure applies only at the Foodtruck1 subsidiary level.
|
|
||||||
Draft operating agreement: [`docs/operating-agreement.md`](./docs/operating-agreement.md).
|
|
||||||
|
|
||||||
`[TODO: fill in the remaining brackets in that agreement — entity legal name, EIN,
|
|
||||||
registered agent, day-to-day manager, staffing model — and record the actual Opening
|
|
||||||
Date and Sam's total invested capital here once known, since both drive the vesting
|
|
||||||
framework's math. Then route it through LegalShield for review before signing.]`
|
|
||||||
|
|
||||||
**Owner role:** Sam (via Holdings, 85%) and Kiowa (15%, vesting) co-own the truck;
|
|
||||||
day-to-day running (routes, customers) is not done by Sam.
|
|
||||||
|
|
||||||
## Staffing Model — decision pending
|
|
||||||
Two options discussed, not yet chosen:
|
|
||||||
- **Lease/License model** — truck leased to an independent operator (their own
|
|
||||||
business entity) for flat rent or % of revenue. Operator hires/manages their own
|
|
||||||
staff; no W-2/1099 question for the subsidiary at all. Cleanest for liability and
|
|
||||||
avoids employer obligations entirely.
|
|
||||||
- **Direct W-2 hire model** — subsidiary hires ~3 employees directly (cooks/crew).
|
|
||||||
Food-truck crew doing the core work almost certainly must be **W-2, not 1099**
|
|
||||||
(behavioral + financial control tests both point to employee status).
|
|
||||||
|
|
||||||
Whichever model is chosen changes everything below — the cost estimates in this doc
|
|
||||||
assume the **direct W-2 hire model** (3 employees).
|
|
||||||
|
|
||||||
## Software / Ops Cost Estimates
|
|
||||||
|
|
||||||
| Item | Estimate | Notes |
|
|
||||||
|---|---:|---|
|
|
||||||
| **Gusto** (payroll) | **$80/mo** (high end) | Covers withholding calc, federal/state tax deposits & filings, new-hire reporting, year-end W-2s. Actual quote for 3 employees on the Plus tier runs ~$80–116/mo; using $80 as the planning number. |
|
|
||||||
| **ERPNext hosting** (Frappe Cloud) | **$20/mo** (confirmed) | Decision: **Frappe Cloud "Servers" plan** (shared VM, dedicated bench) instead of self-hosting on AWS. Cheaper than the $44/mo self-hosted AWS Lightsail 8GB option calculated earlier, and Frappe manages patching/backups/snapshots instead of us. Plenty for our light (1–3 user) usage. |
|
|
||||||
| **Total planning estimate** | **$100/mo** | Software/ops line only — excludes wages, employer payroll tax match, workers' comp premium, and any insurance/permits (see Outstanding Items below). |
|
|
||||||
|
|
||||||
## Mandatory Insurance (fact-checked)
|
|
||||||
|
|
||||||
| Coverage | Mandatory? | Est. Cost | Notes |
|
|
||||||
|---|---|---:|---|
|
|
||||||
| **Workers' Compensation** | **Yes — Indiana law, no employee-count exemption.** Required from employee #1. Penalties for skipping: up to $50/day fine, plus a misdemeanor (up to 1 yr jail / $5,000 fine). | **~$75–150/mo** | Food-service class code rate ~$1.00–4.50 per $100 payroll nationally; exact number depends on actual wages once set. |
|
|
||||||
| **General Liability** | **Functionally yes** — not a blanket state law, but every mobile food vendor permit requires proof of GL (typically $1M/occurrence, $2M aggregate, city/county named as additional insured) before the permit is issued. | **~$42/mo (~$500/yr)** | Confirm exact limit with South Bend / St. Joseph County health dept when applying for the permit. |
|
|
||||||
| **Commercial Auto** | **Yes** — Indiana requires liability coverage on any vehicle on public roads, and a personal auto policy typically **excludes commercial use**, so the truck needs its own commercial policy. | **~$170/mo (~$2,041/yr)** | Bundled GL + commercial auto + equipment/build-out coverage commonly runs **$300–700/mo** total industry-wide — treat the two lines above as a floor. |
|
|
||||||
| **Health insurance (ACA employer mandate)** | **No** — mandate only applies at 50+ full-time-equivalent employees. Not a factor at 3 employees. | $0 | Common misconception; explicitly not required at this size. |
|
|
||||||
|
|
||||||
**Revised planning total, insurance included:** ~$80 (Gusto) + $20 (Frappe Cloud) + ~$75–150 (workers' comp) + ~$42 (GL) + ~$170 (commercial auto) ≈ **$390–460/mo**, before wages, the employer FICA match, and SUTA.
|
|
||||||
|
|
||||||
## Outstanding Items (not yet priced/decided)
|
|
||||||
- [ ] Confirm staffing model (lease vs. W-2) before finalizing payroll requirements
|
|
||||||
- [x] Workers' compensation insurance — confirmed mandatory, ballpark cost above; get real quote once wages are set
|
|
||||||
- [ ] Mobile food vendor permit / health department licensing — confirm which entity holds it, and exact GL limit required by South Bend / St. Joseph County
|
|
||||||
- [x] Commercial auto insurance for the truck — confirmed mandatory, ballpark cost above
|
|
||||||
- [ ] Employer payroll tax match (~7.65% FICA) + Indiana SUTA — scales with actual wages, not a fixed cost
|
|
||||||
- [ ] Lease/License Agreement or W-2 onboarding paperwork (W-4, WH-4, I-9) — draft with LegalShield once model is chosen
|
|
||||||
@ -0,0 +1,539 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Operating Agreement — SnS Hospitality Group LLC</title>
|
||||||
|
<style>
|
||||||
|
:root{
|
||||||
|
--navy:#0A1628;
|
||||||
|
--cyan:#10C8D8;
|
||||||
|
--amber:#f59e0b;
|
||||||
|
--ink:#1a1f27;
|
||||||
|
--paper:#ffffff;
|
||||||
|
--muted:#5b6472;
|
||||||
|
--rule:#e2e6ec;
|
||||||
|
--warn-bg:#fef2f2;
|
||||||
|
--warn-border:#dc2626;
|
||||||
|
--info-bg:#fffbeb;
|
||||||
|
--info-border:#f59e0b;
|
||||||
|
--success-bg:#f0fdf4;
|
||||||
|
--success-border:#16a34a;
|
||||||
|
}
|
||||||
|
*{box-sizing:border-box}
|
||||||
|
body{
|
||||||
|
margin:0;
|
||||||
|
background:#f2f4f7;
|
||||||
|
font-family:"IBM Plex Sans",Inter,system-ui,Arial,sans-serif;
|
||||||
|
color:var(--ink);
|
||||||
|
line-height:1.7;
|
||||||
|
font-size:15px;
|
||||||
|
}
|
||||||
|
.doc{
|
||||||
|
max-width:820px;
|
||||||
|
margin:0 auto;
|
||||||
|
background:var(--paper);
|
||||||
|
padding:48px 64px 72px;
|
||||||
|
box-shadow:0 2px 24px rgba(10,22,40,.12);
|
||||||
|
}
|
||||||
|
.header{
|
||||||
|
border-bottom:3px solid var(--amber);
|
||||||
|
padding-bottom:20px;
|
||||||
|
margin-bottom:32px;
|
||||||
|
}
|
||||||
|
.header h1{
|
||||||
|
font-family:Oxanium,Sora,system-ui,sans-serif;
|
||||||
|
font-size:1.6rem;
|
||||||
|
color:var(--navy);
|
||||||
|
margin:0 0 6px;
|
||||||
|
letter-spacing:.5px;
|
||||||
|
}
|
||||||
|
.header .subtitle{
|
||||||
|
color:var(--amber);
|
||||||
|
font-weight:600;
|
||||||
|
font-size:1.05rem;
|
||||||
|
}
|
||||||
|
.meta{
|
||||||
|
display:flex;
|
||||||
|
flex-wrap:wrap;
|
||||||
|
gap:24px;
|
||||||
|
font-size:.88rem;
|
||||||
|
color:var(--muted);
|
||||||
|
margin-bottom:28px;
|
||||||
|
}
|
||||||
|
.meta b{color:var(--ink)}
|
||||||
|
h2{
|
||||||
|
font-family:Oxanium,Sora,system-ui,sans-serif;
|
||||||
|
font-size:1.1rem;
|
||||||
|
color:var(--navy);
|
||||||
|
border-bottom:2px solid var(--amber);
|
||||||
|
padding-bottom:6px;
|
||||||
|
margin:36px 0 14px;
|
||||||
|
}
|
||||||
|
.page-break{page-break-before:always; margin-top:0;}
|
||||||
|
h3{font-size:.95rem;color:var(--navy);margin:24px 0 10px}
|
||||||
|
p,li{margin-bottom:8px}
|
||||||
|
ul,ol{padding-left:22px}
|
||||||
|
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:.92rem}
|
||||||
|
th{text-align:left;padding:8px 10px;background:var(--navy);color:#fff;font-weight:600}
|
||||||
|
td{padding:8px 10px;border-bottom:1px solid var(--rule)}
|
||||||
|
.callout{border-radius:8px;padding:16px 20px;margin:20px 0;font-size:.92rem}
|
||||||
|
.callout-warn{background:var(--warn-bg);border:1px solid var(--warn-border)}
|
||||||
|
.callout-info{background:var(--info-bg);border:1px solid var(--info-border)}
|
||||||
|
.callout-success{background:var(--success-bg);border:1px solid var(--success-border)}
|
||||||
|
.callout b{color:var(--ink)}
|
||||||
|
.sig-block{margin-top:48px;padding-top:24px;border-top:2px solid var(--navy)}
|
||||||
|
.sig-line{margin:24px 0 4px;border-bottom:1px solid var(--ink);width:65%;height:24px}
|
||||||
|
.sig-label{font-size:.82rem;color:var(--muted);margin-bottom:18px}
|
||||||
|
footer{text-align:center;color:var(--muted);font-size:.78rem;padding:28px 24px 48px}
|
||||||
|
@media print{
|
||||||
|
body{background:#fff}
|
||||||
|
.doc{box-shadow:none;padding:24px 48px}
|
||||||
|
footer{display:none}
|
||||||
|
h2{page-break-before:auto; page-break-after:avoid}
|
||||||
|
h3{page-break-after:avoid}
|
||||||
|
.card, .callout, table, .sig-block{page-break-inside:avoid}
|
||||||
|
p, li{orphans:3; widows:3}
|
||||||
|
tr{page-break-inside:avoid}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="doc">
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<h1>OPERATING AGREEMENT</h1>
|
||||||
|
<div class="subtitle">SnS Hospitality Group LLC</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="meta">
|
||||||
|
<div><b>Entity:</b> SnS Hospitality Group LLC</div>
|
||||||
|
<div><b>EIN:</b> 42-4288652</div>
|
||||||
|
<div><b>Type:</b> Multi-Member LLC (Indiana)</div>
|
||||||
|
<div><b>Parent:</b> SnS Network Solutions Holdings LLC (EIN 42-4099038)</div>
|
||||||
|
<div><b>State filed:</b> Indiana (INBiz, 08/06/2026)</div>
|
||||||
|
<div><b>Effective date:</b> August 6, 2026</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- §1 -->
|
||||||
|
<h2>1. Formation and Purpose</h2>
|
||||||
|
<p>This Operating Agreement (the "Agreement") is entered into by the undersigned Members
|
||||||
|
to govern the operations of <b>SnS Hospitality Group LLC</b> (the "Company"), a limited
|
||||||
|
liability company organized under the Indiana Business Flexibility Act (Indiana Code
|
||||||
|
§ 23-18).</p>
|
||||||
|
<p>The Company is formed to own, operate, and manage <b>mobile and trailer-based food and
|
||||||
|
beverage ventures</b> across Northwest Indiana and Southern Michigan. The first venture
|
||||||
|
is <b>"The Daily Pour"</b> — a fleet of drive-through coffee trailers deployed to
|
||||||
|
high-traffic locations.</p>
|
||||||
|
<p>The Members acknowledge that the Company's success depends on both <b>capital
|
||||||
|
investment</b> (provided by Holdings) and <b>operational excellence, systems development,
|
||||||
|
compliance management, and growth leadership</b> (provided by Kiowa). This Agreement is
|
||||||
|
designed to fairly recognize and protect both forms of contribution.</p>
|
||||||
|
|
||||||
|
<!-- §2 -->
|
||||||
|
<h2>2. Members and Ownership</h2>
|
||||||
|
<table>
|
||||||
|
<tr><th>Member</th><th>Interest</th><th>Type</th></tr>
|
||||||
|
<tr><td>SnS Network Solutions Holdings LLC ("Holdings")</td><td>75% minimum</td><td>Capital + control</td></tr>
|
||||||
|
<tr><td>Kiowa Scott ("Kiowa") — service</td><td>Up to 15% (guaranteed, earned over time)</td><td>Vested through operational work</td></tr>
|
||||||
|
<tr><td>Kiowa Scott ("Kiowa") — investment</td><td>Up to 10% (proportional to startup capital contributed)</td><td>Must invest at startup per venture. Formula: (contribution ÷ startup cost) × 100, capped at 10%.</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div class="callout callout-info">
|
||||||
|
<b>Holdings never drops below 75%.</b> Kiowa's guaranteed path is 15% through service.
|
||||||
|
An additional up to 10% is earned proportionally by investing working capital at
|
||||||
|
startup — the more she contributes toward a venture's startup cost, the more
|
||||||
|
investment equity she earns (capped at 10%). If she doesn't invest, the tranche may
|
||||||
|
be offered to another investor at Holdings' discretion.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- §3 -->
|
||||||
|
<h2 class="page-break">3. Management</h2>
|
||||||
|
<p>The Company shall be <b>Member-managed</b>. Holdings (represented by Samuel S. James)
|
||||||
|
retains sole authority over all day-to-day operational decisions and capital deployment.</p>
|
||||||
|
|
||||||
|
<h3>3.1 Holdings' Authority (Samuel S. James)</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Capital expenditures and investment decisions</li>
|
||||||
|
<li>Forming, acquiring, or dissolving ventures</li>
|
||||||
|
<li>Opening and controlling bank accounts</li>
|
||||||
|
<li>Approving new locations and expansion timing</li>
|
||||||
|
<li>Hiring and removing the General Manager</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>3.2 Kiowa's Role — Operations Director</h3>
|
||||||
|
<p>Kiowa serves as <b>Operations Director</b> — a strategic and administrative leadership
|
||||||
|
role. Her responsibilities:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Compliance — permits, licenses, health department filings, renewals</li>
|
||||||
|
<li>Site selection — finding and securing high-traffic lot locations</li>
|
||||||
|
<li>SOPs — building standard operating procedures and systems for scale</li>
|
||||||
|
<li>Grant sourcing — identifying, applying for, and securing grants/funding</li>
|
||||||
|
<li>Growth planning — expansion strategy, new market evaluation</li>
|
||||||
|
<li>Legal/admin — formation paperwork, regulatory filings, insurance coordination</li>
|
||||||
|
<li>Recruiting Location Managers — finding the right people to run each trailer</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>3.3 Location Manager (Per Trailer)</h3>
|
||||||
|
<p>Each trailer is run by a <b>Location Manager</b> — the lead barista/operator who is
|
||||||
|
empowered to handle day-to-day operations independently:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Opening/closing the trailer</li>
|
||||||
|
<li>Scheduling and managing their own support staff</li>
|
||||||
|
<li>Vendor relationships and supply ordering</li>
|
||||||
|
<li>Customer service and quality control</li>
|
||||||
|
<li>Hiring part-time support for their location</li>
|
||||||
|
</ul>
|
||||||
|
<p>The Location Manager runs their trailer. They are NOT managed by a General Manager —
|
||||||
|
they report directly to Sam and Kiowa as co-founders.</p>
|
||||||
|
|
||||||
|
<h3>3.4 Shared Founder Responsibility — Escalations</h3>
|
||||||
|
<p>Sam and Kiowa <b>share responsibility</b> for issues the Location Manager cannot
|
||||||
|
resolve on their own, including:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Equipment failure (generator, espresso machine, refrigeration)</li>
|
||||||
|
<li>Infrastructure issues (power outage, leaks, internet/network down)</li>
|
||||||
|
<li>Lease/landlord disputes</li>
|
||||||
|
<li>Major staffing issues (Location Manager quits, needs to be replaced)</li>
|
||||||
|
<li>Any situation requiring capital expenditure or legal action</li>
|
||||||
|
</ul>
|
||||||
|
<p>Either founder may handle an escalation. Neither founder is solely responsible for
|
||||||
|
day-to-day store operations — that is the Location Manager's job.</p>
|
||||||
|
|
||||||
|
<h3>3.5 Major Decisions Requiring Mutual Consent</h3>
|
||||||
|
<p>The following decisions require the <b>written consent of both Members</b> (Holdings
|
||||||
|
AND Kiowa), regardless of ownership percentage:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Selling or merging the Company (or any material portion of its assets)</li>
|
||||||
|
<li>Dissolving the Company</li>
|
||||||
|
<li>Issuing new equity that would dilute any Member's <b>vested</b> interest</li>
|
||||||
|
<li>Amending this Operating Agreement</li>
|
||||||
|
</ul>
|
||||||
|
<p>All other business decisions remain under Holdings' authority per §3.1.</p>
|
||||||
|
|
||||||
|
<!-- §4 -->
|
||||||
|
<h2 class="page-break">4. Equity Vesting — Service Grant (15%)</h2>
|
||||||
|
<p>Each venture Kiowa participates in earns her equity in the Hospitality Group:</p>
|
||||||
|
<table>
|
||||||
|
<tr><th>Grant</th><th>Amount</th><th>When</th></tr>
|
||||||
|
<tr><td>Formation grant</td><td>5%</td><td>Vests immediately upon venture formation (Articles filed)</td></tr>
|
||||||
|
<tr><td>Service grant (Q1)</td><td>2.5%</td><td>3 months from Opening Date</td></tr>
|
||||||
|
<tr><td>Service grant (Q2)</td><td>2.5%</td><td>6 months from Opening Date</td></tr>
|
||||||
|
<tr><td>Service grant (Q3)</td><td>2.5%</td><td>9 months from Opening Date</td></tr>
|
||||||
|
<tr><td>Service grant (Q4)</td><td>2.5%</td><td>12 months from Opening Date</td></tr>
|
||||||
|
<tr><td><b>Total</b></td><td><b>15%</b></td><td>Fully vested after 12 months of active service</td></tr>
|
||||||
|
</table>
|
||||||
|
<ul>
|
||||||
|
<li><b>Opening Date</b> = first day of revenue-generating operations</li>
|
||||||
|
<li>Each venture has its own independent vesting schedule</li>
|
||||||
|
<li>Total cumulative service equity is <b>capped at 15%</b></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- §5 -->
|
||||||
|
<h2>5. Investment Equity (Up to 10%, Proportional)</h2>
|
||||||
|
<p>For each venture, Kiowa may earn up to an <b>additional 10% Membership Interest</b> by
|
||||||
|
contributing working capital at startup. The investment equity is <b>proportional</b> to
|
||||||
|
her contribution relative to the venture's total startup cost:</p>
|
||||||
|
|
||||||
|
<div class="callout callout-info">
|
||||||
|
<b>Formula:</b> Investment Equity % = (Kiowa's capital contribution ÷ total venture startup cost) × 100, <b>capped at 10%.</b>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr><th>Venture Startup Cost</th><th>Kiowa Invests</th><th>% of Startup</th><th>Investment Equity</th><th>+ Service (12 mo)</th><th>Her Total</th></tr>
|
||||||
|
<tr><td>$50,000</td><td>$5,000</td><td>10%</td><td>10%</td><td>15%</td><td><b>25%</b></td></tr>
|
||||||
|
<tr><td>$50,000</td><td>$2,500</td><td>5%</td><td>5%</td><td>15%</td><td><b>20%</b></td></tr>
|
||||||
|
<tr><td>$50,000</td><td>$1,000</td><td>2%</td><td>2%</td><td>15%</td><td><b>17%</b></td></tr>
|
||||||
|
<tr><td>$50,000</td><td>$0</td><td>0%</td><td>0%</td><td>15%</td><td><b>15%</b></td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><b>Timing:</b> Investment must be made <b>at startup</b> (before or at the Opening Date). No retroactive buy-in after operations begin.</li>
|
||||||
|
<li><b>Per venture:</b> Each trailer/venture has its own startup cost and its own investment opportunity. Investing in T-00 does not carry over to T-01.</li>
|
||||||
|
<li><b>Cap:</b> Investment equity is capped at 10% regardless of how much Kiowa contributes — she cannot buy more than 10% per venture.</li>
|
||||||
|
<li><b>Vests immediately:</b> Investment equity vests on the date funds are received by the Company. No time-based vesting.</li>
|
||||||
|
<li><b>Holdings minimum preserved:</b> Holdings never drops below 75%.</li>
|
||||||
|
<li><b>If Kiowa does not invest:</b> the investment tranche remains available to a third-party investor under the same proportional formula, at Holdings' discretion.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- §6 -->
|
||||||
|
<h2 class="page-break">6. Grant Finder's Fee</h2>
|
||||||
|
<p>If Kiowa identifies, applies for, and secures a <b>grant</b> (non-repayable funding —
|
||||||
|
government, foundation, or private grant money) for any venture under the Hospitality
|
||||||
|
Group:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Kiowa receives <b>7.5% of the total grant amount</b> as a one-time lump sum</li>
|
||||||
|
<li>Payment is due within <b>14 days</b> of the grant funds hitting the Company's bank account</li>
|
||||||
|
<li>This fee is in addition to (not instead of) her equity and distributions</li>
|
||||||
|
<li>"Grant" means money the Company does not have to repay — loans, lines of credit, and investor capital do not qualify</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- §7 -->
|
||||||
|
<h2>7. Departure Buyback (Before 10 Trailers)</h2>
|
||||||
|
|
||||||
|
<div class="callout callout-warn">
|
||||||
|
<b>If Kiowa departs before all 10 Daily Pour trailers are operational</b> — she is
|
||||||
|
required to sell her vested interest back to Holdings. The buyback price depends on
|
||||||
|
how she leaves.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>7.1 Tiered Buyback Pricing</h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Departure Type</th><th>Buyback Price</th></tr>
|
||||||
|
<tr><td><b>Good standing + 90-day transition</b> (helps onboard replacement, documents systems, hands off cleanly)</td><td><b>100% of FMV</b></td></tr>
|
||||||
|
<tr><td><b>Good standing, immediate departure</b> (no transition, but no misconduct)</td><td><b>75% of FMV</b></td></tr>
|
||||||
|
<tr><td><b>Abandonment</b> (no notice, 30+ days unresponsive, no communication)</td><td><b>50% of FMV</b></td></tr>
|
||||||
|
<tr><td><b>For Cause</b> (fraud, theft, intentional misconduct — see §8)</td><td><b>$0 — full forfeiture</b></td></tr>
|
||||||
|
</table>
|
||||||
|
<p><b>FMV definition:</b> Net asset value (total assets − total liabilities) × Kiowa's
|
||||||
|
vested ownership percentage, as determined by the Company's most recent quarterly books.
|
||||||
|
If disputed, an independent third-party valuation at shared cost.</p>
|
||||||
|
<p><b>Payment terms:</b> Lump sum within 90 days of the departure date, or a 12-month
|
||||||
|
installment plan at Holdings' election.</p>
|
||||||
|
<p><b>Unvested portion:</b> Any unvested equity at the time of departure is forfeited
|
||||||
|
automatically — reverts to Holdings at no cost, regardless of departure type.</p>
|
||||||
|
|
||||||
|
<h3>7.2 Trigger Events</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Voluntary resignation from operational role</li>
|
||||||
|
<li>Failure to fulfill responsibilities (per §7.3) after notice and cure period</li>
|
||||||
|
<li>Removal for cause (see §8 — Forfeiture for Cause)</li>
|
||||||
|
<li>Mutual written agreement to part ways</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>7.3 Performance Standards (Outcome-Based)</h3>
|
||||||
|
<p>Instead of hourly commitments, Kiowa's performance is measured by outcomes:</p>
|
||||||
|
<ul>
|
||||||
|
<li>All permits and licenses are current (no lapses)</li>
|
||||||
|
<li>All operational locations are staffed and open per schedule</li>
|
||||||
|
<li>Quarterly financial reports delivered within 30 days of quarter-end</li>
|
||||||
|
<li>Expansion milestones progressing per the agreed growth plan</li>
|
||||||
|
<li>SOPs documented and maintained for each venture</li>
|
||||||
|
</ul>
|
||||||
|
<p>If Kiowa is not meeting these outcomes, the following process applies:</p>
|
||||||
|
<ol>
|
||||||
|
<li><b>Written notice</b> from Holdings specifying the deficiency</li>
|
||||||
|
<li><b>30-day cure period</b> for Kiowa to resolve the issue (where the issue is curable)</li>
|
||||||
|
<li>If not resolved → <b>30-day mediation</b> (both parties select a neutral mediator)</li>
|
||||||
|
<li>If mediation fails → <b>binding arbitration</b> in St. Joseph County, Indiana</li>
|
||||||
|
</ol>
|
||||||
|
<p>Only after this process is exhausted may Holdings invoke the buyback. No buyback may
|
||||||
|
be triggered on the basis of a performance issue without completing the notice + cure +
|
||||||
|
mediation steps above.</p>
|
||||||
|
|
||||||
|
<!-- §8 -->
|
||||||
|
<h2 class="page-break">8. Forfeiture for Cause</h2>
|
||||||
|
|
||||||
|
<div class="callout callout-warn">
|
||||||
|
<b>If Kiowa violates any law or is found to have misappropriated any terms of this
|
||||||
|
Agreement, she forfeits ALL rights — including all vested and unvested equity — in
|
||||||
|
the Company.</b>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>8.1 Triggering Violations (Serious Misconduct Only)</h3>
|
||||||
|
<p>Forfeiture for Cause is triggered <b>only</b> by intentional, serious misconduct:</p>
|
||||||
|
<ul>
|
||||||
|
<li><b>Fraud or theft</b> — any act of fraud, embezzlement, or theft against the Company, its Members, employees, customers, or vendors</li>
|
||||||
|
<li><b>Misuse of company funds</b> — unauthorized withdrawals, personal use of business accounts, falsified expenses, or deliberate diversion of revenue</li>
|
||||||
|
<li><b>Misuse of company assets</b> — unauthorized sale or encumbrance of company property, equipment, or intellectual property</li>
|
||||||
|
<li><b>Intentional disclosure of private data</b> — deliberate unauthorized sharing of Social Security Numbers, EIN information, financial account details, trade secrets, or any information protected under the NDA</li>
|
||||||
|
<li><b>Criminal conduct</b> — conviction of or plea to any felony, or any misdemeanor involving dishonesty or fraud, in connection with her role</li>
|
||||||
|
<li><b>Intentional material breach</b> of this Agreement or the NDA</li>
|
||||||
|
</ul>
|
||||||
|
<p><b>What does NOT trigger forfeiture:</b> Performance issues, honest mistakes,
|
||||||
|
negligence, circumstances outside Kiowa's control, or disagreements between Members.
|
||||||
|
These are handled through the notice/cure/mediation process in §7.3, potentially
|
||||||
|
leading to a buyback — not forfeiture.</p>
|
||||||
|
|
||||||
|
<h3>8.2 Consequences of Forfeiture for Cause</h3>
|
||||||
|
<ul>
|
||||||
|
<li><b>All equity forfeited</b> — both vested and unvested Membership Interest reverts to Holdings immediately, at no cost to Holdings</li>
|
||||||
|
<li><b>Distributions cease</b> — Kiowa receives only distributions already earned and unpaid through the current quarter at the time of forfeiture. No future distributions.</li>
|
||||||
|
<li><b>Permanent removal</b> — Kiowa is permanently removed from the Company and all ventures under the Hospitality Group. No reinstatement.</li>
|
||||||
|
<li><b>No buyback payment</b> — unlike the §7 departure buyback, forfeiture for cause results in zero compensation for the forfeited equity</li>
|
||||||
|
<li><b>Additional remedies preserved</b> — forfeiture does not limit Holdings' right to pursue legal action for damages, injunctive relief, or criminal referral as applicable</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>8.3 Determination Process</h3>
|
||||||
|
<p>Holdings shall provide Kiowa <b>written notice</b> of the alleged violation, specifying
|
||||||
|
the conduct at issue and the evidence supporting the claim. Kiowa has <b>15 calendar
|
||||||
|
days</b> to respond in writing. If the parties cannot resolve the matter within 15 days
|
||||||
|
of Kiowa's response, either party may submit the dispute to <b>binding arbitration</b>
|
||||||
|
in St. Joseph County, Indiana, under Indiana law. Forfeiture does not take effect until
|
||||||
|
either (a) Kiowa acknowledges the violation in writing, or (b) an arbitrator rules in
|
||||||
|
Holdings' favor.</p>
|
||||||
|
|
||||||
|
<!-- §9 -->
|
||||||
|
<h2 class="page-break">9. After 10 Trailers Are Complete</h2>
|
||||||
|
|
||||||
|
<div class="callout callout-success">
|
||||||
|
<b>The mandatory buyback (§7) expires.</b> The fleet is built. The deal is honored.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>9.1 If She Keeps Working</h3>
|
||||||
|
<p>Full equity, full distributions, full management authority. Business as usual.</p>
|
||||||
|
|
||||||
|
<h3>9.2 If She Stops Working</h3>
|
||||||
|
<ul>
|
||||||
|
<li><b>Retains all vested equity</b> as a passive member (economic rights only)</li>
|
||||||
|
<li><b>Loses management authority</b> — no decisions, no signing power, no operational role</li>
|
||||||
|
<li><b>Dilution:</b> Holdings will hire a W-2 operations manager to replace her role.
|
||||||
|
That salary is a company expense reducing distributable profit. Holdings may also
|
||||||
|
issue new equity from its 75%+ position to incentivize the replacement, diluting
|
||||||
|
Kiowa's percentage over time. She accepts this dilution as a consequence of stepping back.</li>
|
||||||
|
<li><b>No forced buyback</b> — she keeps what she earned</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>9.3 Right of First Refusal — Post-Completion Sale</h3>
|
||||||
|
<p>If Kiowa decides to <b>sell</b> her vested interest after the 10 trailers are complete:</p>
|
||||||
|
<table>
|
||||||
|
<tr><th>Term</th><th>Detail</th></tr>
|
||||||
|
<tr><td>Who buys first?</td><td>Holdings gets <b>first right to purchase</b></td></tr>
|
||||||
|
<tr><td>Price (good standing, all ventures excelling)</td><td><b>100% of FMV</b> — Holdings matches fair market value when all businesses are performing and the departure is amicable</td></tr>
|
||||||
|
<tr><td>Price (if any venture is declining)</td><td><b>85% of FMV</b> — reduced to reflect transition risk when performance is mixed</td></tr>
|
||||||
|
<tr><td>Decision window</td><td>60 days from written notice</td></tr>
|
||||||
|
<tr><td>If Holdings passes</td><td>Kiowa may sell to a third party — but the buyer must be <b>approved by Holdings</b>. No sale to any party Holdings does not consent to.</td></tr>
|
||||||
|
<tr><td>Third-party price floor</td><td>Kiowa cannot sell to a third party at a price lower than what Holdings was offered</td></tr>
|
||||||
|
<tr><td>Partial sales</td><td>Same terms apply — Holdings' ROFR covers partial sales too</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<!-- §10 -->
|
||||||
|
<h2>10. Distributions</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Distributions of available profit are made to Members <b>pro rata</b> in proportion
|
||||||
|
to their vested Membership Interest</li>
|
||||||
|
<li>The <b>formation grant (5%)</b> earns distributions from the Formation Date forward</li>
|
||||||
|
<li><b>Service tranches</b> earn distributions only once vested — unvested tranches do not participate</li>
|
||||||
|
<li>Timing and amounts are determined by Holdings, subject to the Company's financial
|
||||||
|
obligations and applicable law</li>
|
||||||
|
<li>The Company may not make a distribution that would render it unable to pay its debts as they come due</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- §11 -->
|
||||||
|
<h2 class="page-break">11. Capital Contributions</h2>
|
||||||
|
<ul>
|
||||||
|
<li><b>Holdings:</b> Provides all capital required for trailer acquisition, buildout,
|
||||||
|
equipment, and initial operating expenses (~$35,000 per unit). Capital calls are
|
||||||
|
at Holdings' sole discretion.</li>
|
||||||
|
<li><b>Kiowa (service equity):</b> No capital contribution required. Her 15% is
|
||||||
|
earned through operational work.</li>
|
||||||
|
<li><b>Kiowa (investment equity):</b> Up to 10% of the venture's total startup cost,
|
||||||
|
contributed at startup. Earns proportional investment equity per §5.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- §12 -->
|
||||||
|
<h2>12. Bank Accounts, Books, and Records</h2>
|
||||||
|
<ul>
|
||||||
|
<li>The Company shall maintain <b>its own bank account(s)</b>, separate from Holdings'
|
||||||
|
accounts, any Member's personal accounts, and any individual venture's accounts</li>
|
||||||
|
<li>Accurate books and records shall be maintained and made available to all Members</li>
|
||||||
|
<li>Quarterly financial reports (revenue, expenses, net profit, distributions) shall
|
||||||
|
be provided to all Members within 30 days of quarter-end</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- §13 -->
|
||||||
|
<h2>13. Tax Treatment</h2>
|
||||||
|
<p>As a multi-member LLC, the Company is treated as a <b>partnership</b> for U.S. federal
|
||||||
|
income tax purposes. Each Member reports their proportionate share of income/expense on
|
||||||
|
their individual return via Schedule K-1. The Company will file Form 1065 annually.</p>
|
||||||
|
<ul>
|
||||||
|
<li><b>Kiowa's service equity</b> is intended to qualify as a <b>profits interest</b>
|
||||||
|
under Rev. Proc. 93-27 / 2001-43 (no taxable income on grant)</li>
|
||||||
|
<li><b>Section 83(b) election:</b> Kiowa should file within 30 days of each grant date.
|
||||||
|
This is a hard IRS deadline with no extensions.</li>
|
||||||
|
<li><b>Fiscal year:</b> Calendar year (January 1 – December 31)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- §14 -->
|
||||||
|
<h2>14. Confidentiality</h2>
|
||||||
|
<p>Kiowa's access to personal information, business data, trade secrets, and proprietary
|
||||||
|
information is governed by a separate <b>Non-Disclosure Agreement</b>. The NDA applies
|
||||||
|
regardless of Kiowa's membership status and survives termination of this Agreement.
|
||||||
|
Violation of the NDA constitutes grounds for Forfeiture for Cause under §8.</p>
|
||||||
|
|
||||||
|
<!-- §15 -->
|
||||||
|
<h2>15. Amendments</h2>
|
||||||
|
<p>This Agreement may be amended only by a <b>written instrument signed by all Members</b>.
|
||||||
|
Amendments are effective on the date stated in the amendment.</p>
|
||||||
|
|
||||||
|
<!-- §16 -->
|
||||||
|
<h2>16. Dissolution</h2>
|
||||||
|
<p>The Company shall continue in perpetuity unless dissolved by:</p>
|
||||||
|
<ul>
|
||||||
|
<li>The written consent of <b>both Members</b> (per §3.3); or</li>
|
||||||
|
<li>Operation of Indiana law.</li>
|
||||||
|
</ul>
|
||||||
|
<p><b>Notice:</b> Holdings shall provide Kiowa a minimum of <b>90 days written notice</b>
|
||||||
|
before any dissolution. Kiowa continues earning distributions through the notice period.</p>
|
||||||
|
<p>Upon dissolution, the Company's assets shall be applied first to creditors (including
|
||||||
|
any Member, if owed), then distributed to the Members pro rata in proportion to their
|
||||||
|
vested Membership Interests, after which Articles of Dissolution shall be filed with
|
||||||
|
the Indiana Secretary of State.</p>
|
||||||
|
|
||||||
|
<!-- §17 -->
|
||||||
|
<h2>17. Governing Law and Disputes</h2>
|
||||||
|
<p>This Agreement is governed by the laws of the <b>State of Indiana</b>. Any dispute
|
||||||
|
arising under this Agreement that cannot be resolved by the Members within 30 days
|
||||||
|
shall be submitted to binding arbitration in St. Joseph County, Indiana, under Indiana
|
||||||
|
law.</p>
|
||||||
|
|
||||||
|
<!-- §18 -->
|
||||||
|
<h2 class="page-break">18. Exit Scenarios — Summary</h2>
|
||||||
|
<table>
|
||||||
|
<tr><th>Scenario</th><th>Outcome</th></tr>
|
||||||
|
<tr><td>Leaves before 10 trailers — <b>good standing + 90-day transition</b></td><td>Buyback at <b>100% of FMV</b>. Unvested forfeited.</td></tr>
|
||||||
|
<tr><td>Leaves before 10 trailers — <b>good standing, no transition</b></td><td>Buyback at <b>75% of FMV</b>. Unvested forfeited.</td></tr>
|
||||||
|
<tr><td>Leaves before 10 trailers — <b>abandonment</b></td><td>Buyback at <b>50% of FMV</b>. Unvested forfeited.</td></tr>
|
||||||
|
<tr><td><b>Forfeiture for Cause</b> (fraud/theft/intentional misconduct)</td><td>ALL equity forfeited. $0. Permanent removal.</td></tr>
|
||||||
|
<tr><td>Stays through 10 trailers, <b>keeps working</b></td><td>Full equity, full distributions, full authority.</td></tr>
|
||||||
|
<tr><td>Stays through 10 trailers, <b>stops working</b></td><td>Keeps equity (passive), loses authority, accepts dilution.</td></tr>
|
||||||
|
<tr><td>Stays through 10 trailers, <b>wants to sell (all ventures excelling)</b></td><td>Holdings buys at <b>100% FMV</b>. Must approve any third-party buyer.</td></tr>
|
||||||
|
<tr><td>Stays through 10 trailers, <b>wants to sell (any venture declining)</b></td><td>Holdings buys at <b>85% FMV</b>. Must approve any third-party buyer.</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<!-- §19 -->
|
||||||
|
<h2>19. Definitions</h2>
|
||||||
|
<table>
|
||||||
|
<tr><th>Term</th><th>Meaning</th></tr>
|
||||||
|
<tr><td>"Company"</td><td>SnS Hospitality Group LLC</td></tr>
|
||||||
|
<tr><td>"Holdings"</td><td>SnS Network Solutions Holdings LLC (sole member represented by Samuel S. James)</td></tr>
|
||||||
|
<tr><td>"Kiowa"</td><td>Kiowa Scott</td></tr>
|
||||||
|
<tr><td>"Formation Date"</td><td>Date Articles of Organization filed with Indiana Secretary of State</td></tr>
|
||||||
|
<tr><td>"Opening Date"</td><td>Date the venture begins revenue-generating operations</td></tr>
|
||||||
|
<tr><td>"FMV" (Fair Market Value)</td><td>Net asset value (total assets − total liabilities) × Member's ownership percentage</td></tr>
|
||||||
|
<tr><td>"Grant"</td><td>Non-repayable funding (government, foundation, or private grant). Loans and investor capital do not qualify.</td></tr>
|
||||||
|
<tr><td>"For Cause"</td><td>Any triggering violation listed in §8.1</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<!-- EXECUTION -->
|
||||||
|
<div class="sig-block page-break">
|
||||||
|
<h2 style="margin-top:0">Execution</h2>
|
||||||
|
<p>The undersigned, being all of the Members of SnS Hospitality Group LLC, adopt and
|
||||||
|
agree to this Operating Agreement as of the Effective Date first written above.</p>
|
||||||
|
|
||||||
|
<p style="margin-top:28px;font-weight:700;color:var(--navy)">MEMBER — SnS Network Solutions Holdings LLC (75%+)</p>
|
||||||
|
<div class="sig-line"></div>
|
||||||
|
<div class="sig-label">Signature</div>
|
||||||
|
<p><b>Printed name:</b> Samuel S. James</p>
|
||||||
|
<p><b>Title:</b> Sole Member, SnS Network Solutions Holdings LLC</p>
|
||||||
|
<div class="sig-line" style="width:35%"></div>
|
||||||
|
<div class="sig-label">Date</div>
|
||||||
|
|
||||||
|
<p style="margin-top:28px;font-weight:700;color:var(--navy)">MEMBER — Kiowa Scott (up to 25%)</p>
|
||||||
|
<div class="sig-line"></div>
|
||||||
|
<div class="sig-label">Signature</div>
|
||||||
|
<p><b>Printed name:</b> Kiowa Scott</p>
|
||||||
|
<div class="sig-line" style="width:35%"></div>
|
||||||
|
<div class="sig-label">Date</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
Draft — Review with an Indiana-licensed attorney before signing.<br>
|
||||||
|
SnS Network Solutions Holdings LLC • 759 Boxwood Drive, South Bend, IN 46614
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -89,6 +89,20 @@ services start. Destroy the test restore.
|
|||||||
|
|
||||||
Document restore test results in `projects/` or a simple log file.
|
Document restore test results in `projects/` or a simple log file.
|
||||||
|
|
||||||
|
## Exclusions
|
||||||
|
|
||||||
|
When running cluster-wide backups to PBS, **skip guests with raw disk passthrough
|
||||||
|
(physical drives mounted directly into the VM)**. These are storage/archive disks
|
||||||
|
that are too large for PBS snapshots and are not meaningful to back up as VM state.
|
||||||
|
|
||||||
|
| VMID | Name | Passthrough disks | Reason to skip |
|
||||||
|
|------|------|-------------------|----------------|
|
||||||
|
| 104 | portainer | `/dev/sdb` (976G) + `/dev/sdc` (488G) | USB external drives on mtr; back up their *contents* separately if needed, not via vzdump |
|
||||||
|
|
||||||
|
**Rule:** If `vzdump` would include a raw `/dev/sdX` passthrough >100G, skip that
|
||||||
|
guest from automated PBS runs. Back up only the OS disk (if needed) by temporarily
|
||||||
|
detaching the passthrough, or use restic/rsync on the mounted filesystem instead.
|
||||||
|
|
||||||
## Security Posture
|
## Security Posture
|
||||||
|
|
||||||
- **Encryption at rest:** PBS supports encryption. restic encrypts by default (AES-256).
|
- **Encryption at rest:** PBS supports encryption. restic encrypts by default (AES-256).
|
||||||
|
|||||||
2
plane-projects/t0b/.gitignore
vendored
Normal file
2
plane-projects/t0b/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Plane CLI sync state
|
||||||
|
.plane/
|
||||||
15
plane-projects/t0b/plane.yaml
Normal file
15
plane-projects/t0b/plane.yaml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
type: project
|
||||||
|
workspace: shg
|
||||||
|
connection: sns-hospitality
|
||||||
|
project:
|
||||||
|
key: T0B
|
||||||
|
name: T00 Buildout
|
||||||
|
description: "T00-DRIP buildout — trailer purchase, equipment acquisition, build milestones, inspection."
|
||||||
|
network: private
|
||||||
|
timezone: America/Indiana/Indianapolis
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
type: Task
|
||||||
|
workflow: default
|
||||||
|
|
||||||
|
template: default
|
||||||
38
plane-projects/t0b/schema/features.yaml
Normal file
38
plane-projects/t0b/schema/features.yaml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Project Feature Toggles
|
||||||
|
# Enable or disable features for this project.
|
||||||
|
# Changes here are applied when you run `plane schema push`.
|
||||||
|
#
|
||||||
|
# Data gating: cycles/modules data is only pushed when the flag is true.
|
||||||
|
# Set a flag to false to disable the feature AND skip pushing its data.
|
||||||
|
#
|
||||||
|
# Available features:
|
||||||
|
# cycles — time-boxed sprints / iterations
|
||||||
|
# modules — group work items by feature area
|
||||||
|
# pages — collaborative wiki pages
|
||||||
|
# views — saved filtered views
|
||||||
|
# intakes — public intake / triage form
|
||||||
|
# epics — hierarchical parent work items
|
||||||
|
# work_item_types — custom work item type definitions
|
||||||
|
# workflows — state-machine workflow rules
|
||||||
|
# parallel_cycles — allow multiple active cycles simultaneously
|
||||||
|
# manually_start_end_cycles — manually control cycle start/end instead of automatic
|
||||||
|
# project_updates — project progress update posts
|
||||||
|
# time_tracking — log time and view timesheets on work items
|
||||||
|
#
|
||||||
|
# Note: time_tracking is pushed differently under the hood — it's a plain
|
||||||
|
# project attribute (is_time_tracking_enabled), not part of the /features/
|
||||||
|
# API the rest of this file maps to 1:1 — but it lives here alongside the
|
||||||
|
# other toggles since that's where Plane's own UI groups it.
|
||||||
|
features:
|
||||||
|
cycles: true
|
||||||
|
modules: true
|
||||||
|
pages: true
|
||||||
|
views: true
|
||||||
|
intakes: false
|
||||||
|
epics: false
|
||||||
|
work_item_types: false
|
||||||
|
workflows: false
|
||||||
|
parallel_cycles: false
|
||||||
|
manually_start_end_cycles: false
|
||||||
|
project_updates: false
|
||||||
|
time_tracking: false
|
||||||
24
plane-projects/t0b/schema/labels.yaml
Normal file
24
plane-projects/t0b/schema/labels.yaml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
labels:
|
||||||
|
- name: Trailer
|
||||||
|
color: "#4B2E20"
|
||||||
|
|
||||||
|
- name: Coffee Equipment
|
||||||
|
color: "#B87333"
|
||||||
|
|
||||||
|
- name: Kitchen
|
||||||
|
color: "#D4AF37"
|
||||||
|
|
||||||
|
- name: Power
|
||||||
|
color: "#dc2626"
|
||||||
|
|
||||||
|
- name: Water System
|
||||||
|
color: "#6B7F99"
|
||||||
|
|
||||||
|
- name: Network & Security
|
||||||
|
color: "#A3B18A"
|
||||||
|
|
||||||
|
- name: Signage
|
||||||
|
color: "#E7B4B8"
|
||||||
|
|
||||||
|
- name: POS
|
||||||
|
color: "#A78A7A"
|
||||||
5
plane-projects/t0b/schema/members.yaml
Normal file
5
plane-projects/t0b/schema/members.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
members:
|
||||||
|
- id: ccd860e7-26e2-4ec3-9f02-f36668a1e9d2
|
||||||
|
email: samueljamesinc@snsnetworksolutions.net
|
||||||
|
display_name: samueljamesinc
|
||||||
|
role: admin
|
||||||
14
plane-projects/t0b/schema/page_templates.yaml
Normal file
14
plane-projects/t0b/schema/page_templates.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# page_templates.yaml — project-level page templates
|
||||||
|
# Each entry is a starter template for creating pages.
|
||||||
|
# Requires FeatureFlag.WORKITEM_TEMPLATES to be enabled on the Plane instance.
|
||||||
|
#
|
||||||
|
# Fields:
|
||||||
|
# id: server UUID (set after first push — do not edit)
|
||||||
|
# name: template display name
|
||||||
|
# template_data:
|
||||||
|
# name: default page name
|
||||||
|
# description_html: HTML content
|
||||||
|
# color: hex color (omit for default)
|
||||||
|
# logo_props: icon/emoji object
|
||||||
|
|
||||||
|
page_templates: []
|
||||||
36
plane-projects/t0b/schema/states.yaml
Normal file
36
plane-projects/t0b/schema/states.yaml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
states:
|
||||||
|
Backlog:
|
||||||
|
group: backlog
|
||||||
|
color: "#A78A7A"
|
||||||
|
allow_issue_creation: true
|
||||||
|
is_default: true
|
||||||
|
|
||||||
|
Sourcing:
|
||||||
|
group: unstarted
|
||||||
|
color: "#D4AF37"
|
||||||
|
allow_issue_creation: true
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Ordered:
|
||||||
|
group: started
|
||||||
|
color: "#E7B4B8"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
In Build:
|
||||||
|
group: started
|
||||||
|
color: "#B87333"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Installed:
|
||||||
|
group: completed
|
||||||
|
color: "#A3B18A"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Cancelled:
|
||||||
|
group: cancelled
|
||||||
|
color: "#6B7F99"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
59
plane-projects/t0b/schema/types.yaml
Normal file
59
plane-projects/t0b/schema/types.yaml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# Work Item Type Definitions
|
||||||
|
#
|
||||||
|
# NOTE: Base work item types (Bug, Feature, Task, Chore, Improvement) are
|
||||||
|
# automatically created by Plane. This file should be used to:
|
||||||
|
# 1. Add custom properties to existing types
|
||||||
|
# 2. Create custom work item types for your organization
|
||||||
|
#
|
||||||
|
# Built-in fields available on all types: priority, due_date, estimate, start_date, etc.
|
||||||
|
#
|
||||||
|
# Example: Customize an existing work item type with custom properties
|
||||||
|
# work_item_types:
|
||||||
|
# Bug:
|
||||||
|
# description: A defect or issue requiring fix
|
||||||
|
# properties:
|
||||||
|
# - name: severity
|
||||||
|
# type: option
|
||||||
|
# required: true
|
||||||
|
# options:
|
||||||
|
# - cosmetic
|
||||||
|
# - minor
|
||||||
|
# - major
|
||||||
|
# - critical
|
||||||
|
# - name: environment
|
||||||
|
# type: option
|
||||||
|
# options:
|
||||||
|
# - development
|
||||||
|
# - staging
|
||||||
|
# - production
|
||||||
|
# - name: is_regression
|
||||||
|
# type: boolean
|
||||||
|
#
|
||||||
|
# Example: Customize Feature type with custom properties
|
||||||
|
# Feature:
|
||||||
|
# description: Net-new functionality or capability
|
||||||
|
# properties:
|
||||||
|
# - name: design_link
|
||||||
|
# type: url
|
||||||
|
# - name: target_date
|
||||||
|
# type: datetime
|
||||||
|
# - name: customer_requested
|
||||||
|
# type: boolean
|
||||||
|
#
|
||||||
|
# Example: Create a custom work item type
|
||||||
|
# RFC (Request for Comments):
|
||||||
|
# description: Design proposal requiring team feedback
|
||||||
|
# properties:
|
||||||
|
# - name: author
|
||||||
|
# type: text
|
||||||
|
# - name: review_deadline
|
||||||
|
# type: datetime
|
||||||
|
# - name: approval_status
|
||||||
|
# type: option
|
||||||
|
# options:
|
||||||
|
# - draft
|
||||||
|
# - under_review
|
||||||
|
# - approved
|
||||||
|
# - rejected
|
||||||
|
|
||||||
|
work_item_types: {}
|
||||||
104
plane-projects/t0b/schema/workflows.yaml
Normal file
104
plane-projects/t0b/schema/workflows.yaml
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
# Workflow Definitions
|
||||||
|
# Defines state machines for work items with transitions and validation rules
|
||||||
|
#
|
||||||
|
# NOTE: A 'Default Workflow' is automatically created by Plane when the
|
||||||
|
# workflows feature is enabled. Do not define a default workflow here.
|
||||||
|
# This file should contain ONLY custom workflows.
|
||||||
|
#
|
||||||
|
# Reference: States are referenced by name from states.yaml
|
||||||
|
# State groups: backlog, unstarted, started, completed, cancelled
|
||||||
|
#
|
||||||
|
# Transition Types:
|
||||||
|
# - type: 'transition' (direct state change)
|
||||||
|
# - type: 'approval' (requires approvers before transition)
|
||||||
|
#
|
||||||
|
# Optional transition fields:
|
||||||
|
# - required_approvals: number of approvals needed (null = all approvers required)
|
||||||
|
# - approvers: list of user emails who can approve
|
||||||
|
# - pre_rules: pre-validation scripts
|
||||||
|
# - post_rules: post-action scripts
|
||||||
|
|
||||||
|
# Example: Custom Workflow for Feature Development
|
||||||
|
# Uncomment and customize for your workflow:
|
||||||
|
#
|
||||||
|
# workflows:
|
||||||
|
# Feature Workflow:
|
||||||
|
# description: Workflow optimized for feature development with QA and UAT stages
|
||||||
|
# is_active: false
|
||||||
|
# is_default: false
|
||||||
|
# work_item_types:
|
||||||
|
# - Feature
|
||||||
|
#
|
||||||
|
# states:
|
||||||
|
# - Backlog
|
||||||
|
# - Ready
|
||||||
|
# - In Progress
|
||||||
|
# - In Review
|
||||||
|
# - Testing
|
||||||
|
# - Done
|
||||||
|
#
|
||||||
|
# transitions:
|
||||||
|
# Backlog:
|
||||||
|
# - to: Ready
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Ready:
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
# - to: Backlog
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Progress:
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Review:
|
||||||
|
# - to: Testing
|
||||||
|
# type: transition
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Testing:
|
||||||
|
# - to: Done
|
||||||
|
# type: transition
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Done: {}
|
||||||
|
|
||||||
|
# Example: Bug Triage Workflow
|
||||||
|
# Uncomment and customize for your workflow:
|
||||||
|
#
|
||||||
|
# Bug Triage Workflow:
|
||||||
|
# description: Simplified workflow for bug tracking and resolution
|
||||||
|
# is_active: false
|
||||||
|
# is_default: false
|
||||||
|
# work_item_types:
|
||||||
|
# - Bug
|
||||||
|
#
|
||||||
|
# states:
|
||||||
|
# - Backlog
|
||||||
|
# - In Progress
|
||||||
|
# - In Review
|
||||||
|
# - Done
|
||||||
|
#
|
||||||
|
# transitions:
|
||||||
|
# Backlog:
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Progress:
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
# - to: Backlog
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Review:
|
||||||
|
# - to: Done
|
||||||
|
# type: transition
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Done: {}
|
||||||
|
|
||||||
|
workflows: {}
|
||||||
21
plane-projects/t0b/schema/workitem_templates.yaml
Normal file
21
plane-projects/t0b/schema/workitem_templates.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# workitem_templates.yaml — project-level workitem templates
|
||||||
|
# Each entry is a blueprint for creating work items.
|
||||||
|
# Requires FeatureFlag.WORKITEM_TEMPLATES to be enabled on the Plane instance.
|
||||||
|
#
|
||||||
|
# Fields:
|
||||||
|
# id: server UUID (set after first push — do not edit)
|
||||||
|
# name: template display name
|
||||||
|
# description: optional description shown in the template picker
|
||||||
|
# template_data:
|
||||||
|
# name: default work item name
|
||||||
|
# description_html: HTML description
|
||||||
|
# priority: none | low | medium | high | urgent
|
||||||
|
# state: state UUID
|
||||||
|
# assignees: list of user UUIDs
|
||||||
|
# label_ids: list of label UUIDs
|
||||||
|
# type_id: work item type UUID
|
||||||
|
# module_ids: list of module UUIDs
|
||||||
|
# estimate_point: null or string
|
||||||
|
# sub_workitems: list of sub-work-item dicts
|
||||||
|
|
||||||
|
workitem_templates: []
|
||||||
21
plane-projects/t0b/work/cycles.yaml
Normal file
21
plane-projects/t0b/work/cycles.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Cycle Definitions
|
||||||
|
# Cycles represent time-boxed sprints or iterations.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync cycles from Plane.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# cycles:
|
||||||
|
# - name: Sprint 1
|
||||||
|
# description: First sprint — core setup and scaffolding
|
||||||
|
# start_date: '2024-01-01'
|
||||||
|
# end_date: '2024-01-14'
|
||||||
|
# status: backlog
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: Sprint 2
|
||||||
|
# description: Second sprint — feature development
|
||||||
|
# start_date: '2024-01-15'
|
||||||
|
# end_date: '2024-01-28'
|
||||||
|
# status: planned
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
cycles: []
|
||||||
22
plane-projects/t0b/work/milestones.yaml
Normal file
22
plane-projects/t0b/work/milestones.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Milestone Definitions
|
||||||
|
# Milestones are fixed checkpoints for tracking key deliverables.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync milestones from Plane.
|
||||||
|
#
|
||||||
|
# Note: Milestone support requires the Milestones feature to be enabled in
|
||||||
|
# your Plane workspace project settings.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# milestones:
|
||||||
|
# - name: Alpha Release
|
||||||
|
# target_date: '2024-03-31'
|
||||||
|
# work_items:
|
||||||
|
# - PROJ-1
|
||||||
|
# - PROJ-5
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: Beta Launch
|
||||||
|
# target_date: '2024-06-30'
|
||||||
|
# work_items: []
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
milestones: []
|
||||||
21
plane-projects/t0b/work/modules.yaml
Normal file
21
plane-projects/t0b/work/modules.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Module Definitions
|
||||||
|
# Modules group related work items by feature area or milestone.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync modules from Plane.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# modules:
|
||||||
|
# - name: Authentication
|
||||||
|
# description: User login, OAuth, and session management
|
||||||
|
# start_date: '2024-01-01'
|
||||||
|
# end_date: '2024-03-31'
|
||||||
|
# status: backlog
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: API Integration
|
||||||
|
# description: Third-party API integrations and webhooks
|
||||||
|
# start_date: '2024-02-01'
|
||||||
|
# end_date: '2024-03-15'
|
||||||
|
# status: in-progress
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
modules: []
|
||||||
35
plane-projects/t0b/work/pages.yaml
Normal file
35
plane-projects/t0b/work/pages.yaml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Project Pages
|
||||||
|
# Wiki pages scoped to this project.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync pages from Plane.
|
||||||
|
#
|
||||||
|
# Note: Pages support requires the Pages feature to be enabled in
|
||||||
|
# your Plane project settings (schema/features.yaml → pages: true).
|
||||||
|
#
|
||||||
|
# How it works:
|
||||||
|
# - Items WITHOUT an id → created on 'plane push' (id written back in-place)
|
||||||
|
# - Items WITH an id → skipped on push (no update API); use Plane UI to edit
|
||||||
|
# - Items absent locally → NOT deleted remotely
|
||||||
|
#
|
||||||
|
# Field reference:
|
||||||
|
# name (required) display name shown in Plane UI
|
||||||
|
# description_html (required for push) HTML content of the page
|
||||||
|
# owner email of the page owner (resolved on pull; useful for private pages)
|
||||||
|
# access public | private (default: public)
|
||||||
|
# color hex color string, e.g. '#FF6900' (optional)
|
||||||
|
# is_locked true | false (optional, default: false)
|
||||||
|
# id Server-assigned UUID — written back after push, do not set manually
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# pages:
|
||||||
|
# - name: Architecture Overview
|
||||||
|
# description_html: "<p>System architecture documentation.</p>"
|
||||||
|
# owner: alice@example.com
|
||||||
|
# access: public
|
||||||
|
# - name: Dev Notes
|
||||||
|
# description_html: "<p>Internal notes for the team.</p>"
|
||||||
|
# owner: bob@example.com
|
||||||
|
# access: private
|
||||||
|
# color: '#FF6900'
|
||||||
|
|
||||||
|
pages: []
|
||||||
78
plane-projects/t0b/work/workitems.yaml
Normal file
78
plane-projects/t0b/work/workitems.yaml
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
workitems:
|
||||||
|
- title: "Purchase enclosed cargo trailer (8x14-16)"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: high
|
||||||
|
labels: [Trailer]
|
||||||
|
description: |
|
||||||
|
Budget: $6,000-9,000. Sources: Trailers Midwest (Elkhart), I-69 Trailer Center (Fort Wayne).
|
||||||
|
Used preferred. Must be inspectable before purchase.
|
||||||
|
|
||||||
|
- title: "Trailer interior buildout (electrical + plumbing + counters + window)"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: high
|
||||||
|
labels: [Trailer]
|
||||||
|
description: |
|
||||||
|
Budget: $10,000. Get quotes from Elkhart trailer conversion shops.
|
||||||
|
Includes: wiring, outlets, serving window cut, countertop, flooring.
|
||||||
|
|
||||||
|
- title: "Purchase Nuova Simonelli Appia Life 2-Group"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: high
|
||||||
|
labels: [Coffee Equipment]
|
||||||
|
description: |
|
||||||
|
Budget: $9,000. Commercial 2-group espresso machine.
|
||||||
|
|
||||||
|
- title: "Purchase Eureka Atom 75 grinder"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: high
|
||||||
|
labels: [Coffee Equipment]
|
||||||
|
description: |
|
||||||
|
Budget: $2,000. 75mm flat burrs, stepless adjustment.
|
||||||
|
|
||||||
|
- title: "Install water system (tanks + pump + heater + sinks + plumbing)"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: high
|
||||||
|
labels: [Water System]
|
||||||
|
description: |
|
||||||
|
Fresh tank 65gal, gray 50gal, black 30gal + toilet, 12V pump, tankless propane heater,
|
||||||
|
hand-wash sink, 2-comp sink, PEX plumbing. See materials.csv for full list.
|
||||||
|
|
||||||
|
- title: "Install power system (battery + generator + inverter)"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: high
|
||||||
|
labels: [Power]
|
||||||
|
description: |
|
||||||
|
LiFePO4 battery bank (3-5 kWh), Predator 3500 generator, 9500W inverter,
|
||||||
|
transfer switch, shore power inlet. Auto-start at 40% SOC.
|
||||||
|
|
||||||
|
- title: "Install 48V DC mini split heat pump"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: medium
|
||||||
|
labels: [Power]
|
||||||
|
description: |
|
||||||
|
12000 BTU, runs off battery directly (no inverter loss). Heats + cools.
|
||||||
|
|
||||||
|
- title: "Install network & security (switch + cameras + NVR + cellular modem)"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: medium
|
||||||
|
labels: [Network & Security]
|
||||||
|
description: |
|
||||||
|
XikeStor 12-port POE switch, 3x ZOSI 5MP cameras, 8-ch NVR,
|
||||||
|
cellular router, UPS, AirTag tracker. SNS Networking signs off (hex suffix).
|
||||||
|
|
||||||
|
- title: "Exterior branding / trailer wrap"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: medium
|
||||||
|
labels: [Signage]
|
||||||
|
description: |
|
||||||
|
Budget: $2,500. Full vinyl wrap — The Daily Pour branding.
|
||||||
|
Wrapmate (South Bend), Indiana Wrap Co, or Wraphouse Graphics.
|
||||||
2
plane-projects/t0f/.gitignore
vendored
Normal file
2
plane-projects/t0f/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Plane CLI sync state
|
||||||
|
.plane/
|
||||||
15
plane-projects/t0f/plane.yaml
Normal file
15
plane-projects/t0f/plane.yaml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
type: project
|
||||||
|
workspace: shg
|
||||||
|
connection: sns-hospitality
|
||||||
|
project:
|
||||||
|
key: T0F
|
||||||
|
name: T00 Funding
|
||||||
|
description: "T00-DRIP funding — grant applications, loan tracking, deadlines, funding strategy."
|
||||||
|
network: private
|
||||||
|
timezone: America/Indiana/Indianapolis
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
type: Task
|
||||||
|
workflow: default
|
||||||
|
|
||||||
|
template: default
|
||||||
38
plane-projects/t0f/schema/features.yaml
Normal file
38
plane-projects/t0f/schema/features.yaml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Project Feature Toggles
|
||||||
|
# Enable or disable features for this project.
|
||||||
|
# Changes here are applied when you run `plane schema push`.
|
||||||
|
#
|
||||||
|
# Data gating: cycles/modules data is only pushed when the flag is true.
|
||||||
|
# Set a flag to false to disable the feature AND skip pushing its data.
|
||||||
|
#
|
||||||
|
# Available features:
|
||||||
|
# cycles — time-boxed sprints / iterations
|
||||||
|
# modules — group work items by feature area
|
||||||
|
# pages — collaborative wiki pages
|
||||||
|
# views — saved filtered views
|
||||||
|
# intakes — public intake / triage form
|
||||||
|
# epics — hierarchical parent work items
|
||||||
|
# work_item_types — custom work item type definitions
|
||||||
|
# workflows — state-machine workflow rules
|
||||||
|
# parallel_cycles — allow multiple active cycles simultaneously
|
||||||
|
# manually_start_end_cycles — manually control cycle start/end instead of automatic
|
||||||
|
# project_updates — project progress update posts
|
||||||
|
# time_tracking — log time and view timesheets on work items
|
||||||
|
#
|
||||||
|
# Note: time_tracking is pushed differently under the hood — it's a plain
|
||||||
|
# project attribute (is_time_tracking_enabled), not part of the /features/
|
||||||
|
# API the rest of this file maps to 1:1 — but it lives here alongside the
|
||||||
|
# other toggles since that's where Plane's own UI groups it.
|
||||||
|
features:
|
||||||
|
cycles: true
|
||||||
|
modules: true
|
||||||
|
pages: true
|
||||||
|
views: true
|
||||||
|
intakes: false
|
||||||
|
epics: false
|
||||||
|
work_item_types: false
|
||||||
|
workflows: false
|
||||||
|
parallel_cycles: false
|
||||||
|
manually_start_end_cycles: false
|
||||||
|
project_updates: false
|
||||||
|
time_tracking: false
|
||||||
18
plane-projects/t0f/schema/labels.yaml
Normal file
18
plane-projects/t0f/schema/labels.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
labels:
|
||||||
|
- name: Grant
|
||||||
|
color: "#A3B18A"
|
||||||
|
|
||||||
|
- name: Loan
|
||||||
|
color: "#D4AF37"
|
||||||
|
|
||||||
|
- name: Tax Credit
|
||||||
|
color: "#B87333"
|
||||||
|
|
||||||
|
- name: City Program
|
||||||
|
color: "#6B7F99"
|
||||||
|
|
||||||
|
- name: Federal
|
||||||
|
color: "#4B2E20"
|
||||||
|
|
||||||
|
- name: Deadline
|
||||||
|
color: "#dc2626"
|
||||||
5
plane-projects/t0f/schema/members.yaml
Normal file
5
plane-projects/t0f/schema/members.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
members:
|
||||||
|
- id: ccd860e7-26e2-4ec3-9f02-f36668a1e9d2
|
||||||
|
email: samueljamesinc@snsnetworksolutions.net
|
||||||
|
display_name: samueljamesinc
|
||||||
|
role: admin
|
||||||
14
plane-projects/t0f/schema/page_templates.yaml
Normal file
14
plane-projects/t0f/schema/page_templates.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# page_templates.yaml — project-level page templates
|
||||||
|
# Each entry is a starter template for creating pages.
|
||||||
|
# Requires FeatureFlag.WORKITEM_TEMPLATES to be enabled on the Plane instance.
|
||||||
|
#
|
||||||
|
# Fields:
|
||||||
|
# id: server UUID (set after first push — do not edit)
|
||||||
|
# name: template display name
|
||||||
|
# template_data:
|
||||||
|
# name: default page name
|
||||||
|
# description_html: HTML content
|
||||||
|
# color: hex color (omit for default)
|
||||||
|
# logo_props: icon/emoji object
|
||||||
|
|
||||||
|
page_templates: []
|
||||||
36
plane-projects/t0f/schema/states.yaml
Normal file
36
plane-projects/t0f/schema/states.yaml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
states:
|
||||||
|
Backlog:
|
||||||
|
group: backlog
|
||||||
|
color: "#A78A7A"
|
||||||
|
allow_issue_creation: true
|
||||||
|
is_default: true
|
||||||
|
|
||||||
|
Researching:
|
||||||
|
group: unstarted
|
||||||
|
color: "#D4AF37"
|
||||||
|
allow_issue_creation: true
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Application Submitted:
|
||||||
|
group: started
|
||||||
|
color: "#E7B4B8"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Awaiting Response:
|
||||||
|
group: started
|
||||||
|
color: "#B87333"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Approved:
|
||||||
|
group: completed
|
||||||
|
color: "#A3B18A"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Denied:
|
||||||
|
group: cancelled
|
||||||
|
color: "#dc2626"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
59
plane-projects/t0f/schema/types.yaml
Normal file
59
plane-projects/t0f/schema/types.yaml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# Work Item Type Definitions
|
||||||
|
#
|
||||||
|
# NOTE: Base work item types (Bug, Feature, Task, Chore, Improvement) are
|
||||||
|
# automatically created by Plane. This file should be used to:
|
||||||
|
# 1. Add custom properties to existing types
|
||||||
|
# 2. Create custom work item types for your organization
|
||||||
|
#
|
||||||
|
# Built-in fields available on all types: priority, due_date, estimate, start_date, etc.
|
||||||
|
#
|
||||||
|
# Example: Customize an existing work item type with custom properties
|
||||||
|
# work_item_types:
|
||||||
|
# Bug:
|
||||||
|
# description: A defect or issue requiring fix
|
||||||
|
# properties:
|
||||||
|
# - name: severity
|
||||||
|
# type: option
|
||||||
|
# required: true
|
||||||
|
# options:
|
||||||
|
# - cosmetic
|
||||||
|
# - minor
|
||||||
|
# - major
|
||||||
|
# - critical
|
||||||
|
# - name: environment
|
||||||
|
# type: option
|
||||||
|
# options:
|
||||||
|
# - development
|
||||||
|
# - staging
|
||||||
|
# - production
|
||||||
|
# - name: is_regression
|
||||||
|
# type: boolean
|
||||||
|
#
|
||||||
|
# Example: Customize Feature type with custom properties
|
||||||
|
# Feature:
|
||||||
|
# description: Net-new functionality or capability
|
||||||
|
# properties:
|
||||||
|
# - name: design_link
|
||||||
|
# type: url
|
||||||
|
# - name: target_date
|
||||||
|
# type: datetime
|
||||||
|
# - name: customer_requested
|
||||||
|
# type: boolean
|
||||||
|
#
|
||||||
|
# Example: Create a custom work item type
|
||||||
|
# RFC (Request for Comments):
|
||||||
|
# description: Design proposal requiring team feedback
|
||||||
|
# properties:
|
||||||
|
# - name: author
|
||||||
|
# type: text
|
||||||
|
# - name: review_deadline
|
||||||
|
# type: datetime
|
||||||
|
# - name: approval_status
|
||||||
|
# type: option
|
||||||
|
# options:
|
||||||
|
# - draft
|
||||||
|
# - under_review
|
||||||
|
# - approved
|
||||||
|
# - rejected
|
||||||
|
|
||||||
|
work_item_types: {}
|
||||||
104
plane-projects/t0f/schema/workflows.yaml
Normal file
104
plane-projects/t0f/schema/workflows.yaml
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
# Workflow Definitions
|
||||||
|
# Defines state machines for work items with transitions and validation rules
|
||||||
|
#
|
||||||
|
# NOTE: A 'Default Workflow' is automatically created by Plane when the
|
||||||
|
# workflows feature is enabled. Do not define a default workflow here.
|
||||||
|
# This file should contain ONLY custom workflows.
|
||||||
|
#
|
||||||
|
# Reference: States are referenced by name from states.yaml
|
||||||
|
# State groups: backlog, unstarted, started, completed, cancelled
|
||||||
|
#
|
||||||
|
# Transition Types:
|
||||||
|
# - type: 'transition' (direct state change)
|
||||||
|
# - type: 'approval' (requires approvers before transition)
|
||||||
|
#
|
||||||
|
# Optional transition fields:
|
||||||
|
# - required_approvals: number of approvals needed (null = all approvers required)
|
||||||
|
# - approvers: list of user emails who can approve
|
||||||
|
# - pre_rules: pre-validation scripts
|
||||||
|
# - post_rules: post-action scripts
|
||||||
|
|
||||||
|
# Example: Custom Workflow for Feature Development
|
||||||
|
# Uncomment and customize for your workflow:
|
||||||
|
#
|
||||||
|
# workflows:
|
||||||
|
# Feature Workflow:
|
||||||
|
# description: Workflow optimized for feature development with QA and UAT stages
|
||||||
|
# is_active: false
|
||||||
|
# is_default: false
|
||||||
|
# work_item_types:
|
||||||
|
# - Feature
|
||||||
|
#
|
||||||
|
# states:
|
||||||
|
# - Backlog
|
||||||
|
# - Ready
|
||||||
|
# - In Progress
|
||||||
|
# - In Review
|
||||||
|
# - Testing
|
||||||
|
# - Done
|
||||||
|
#
|
||||||
|
# transitions:
|
||||||
|
# Backlog:
|
||||||
|
# - to: Ready
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Ready:
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
# - to: Backlog
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Progress:
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Review:
|
||||||
|
# - to: Testing
|
||||||
|
# type: transition
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Testing:
|
||||||
|
# - to: Done
|
||||||
|
# type: transition
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Done: {}
|
||||||
|
|
||||||
|
# Example: Bug Triage Workflow
|
||||||
|
# Uncomment and customize for your workflow:
|
||||||
|
#
|
||||||
|
# Bug Triage Workflow:
|
||||||
|
# description: Simplified workflow for bug tracking and resolution
|
||||||
|
# is_active: false
|
||||||
|
# is_default: false
|
||||||
|
# work_item_types:
|
||||||
|
# - Bug
|
||||||
|
#
|
||||||
|
# states:
|
||||||
|
# - Backlog
|
||||||
|
# - In Progress
|
||||||
|
# - In Review
|
||||||
|
# - Done
|
||||||
|
#
|
||||||
|
# transitions:
|
||||||
|
# Backlog:
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Progress:
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
# - to: Backlog
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Review:
|
||||||
|
# - to: Done
|
||||||
|
# type: transition
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Done: {}
|
||||||
|
|
||||||
|
workflows: {}
|
||||||
21
plane-projects/t0f/schema/workitem_templates.yaml
Normal file
21
plane-projects/t0f/schema/workitem_templates.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# workitem_templates.yaml — project-level workitem templates
|
||||||
|
# Each entry is a blueprint for creating work items.
|
||||||
|
# Requires FeatureFlag.WORKITEM_TEMPLATES to be enabled on the Plane instance.
|
||||||
|
#
|
||||||
|
# Fields:
|
||||||
|
# id: server UUID (set after first push — do not edit)
|
||||||
|
# name: template display name
|
||||||
|
# description: optional description shown in the template picker
|
||||||
|
# template_data:
|
||||||
|
# name: default work item name
|
||||||
|
# description_html: HTML description
|
||||||
|
# priority: none | low | medium | high | urgent
|
||||||
|
# state: state UUID
|
||||||
|
# assignees: list of user UUIDs
|
||||||
|
# label_ids: list of label UUIDs
|
||||||
|
# type_id: work item type UUID
|
||||||
|
# module_ids: list of module UUIDs
|
||||||
|
# estimate_point: null or string
|
||||||
|
# sub_workitems: list of sub-work-item dicts
|
||||||
|
|
||||||
|
workitem_templates: []
|
||||||
21
plane-projects/t0f/work/cycles.yaml
Normal file
21
plane-projects/t0f/work/cycles.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Cycle Definitions
|
||||||
|
# Cycles represent time-boxed sprints or iterations.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync cycles from Plane.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# cycles:
|
||||||
|
# - name: Sprint 1
|
||||||
|
# description: First sprint — core setup and scaffolding
|
||||||
|
# start_date: '2024-01-01'
|
||||||
|
# end_date: '2024-01-14'
|
||||||
|
# status: backlog
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: Sprint 2
|
||||||
|
# description: Second sprint — feature development
|
||||||
|
# start_date: '2024-01-15'
|
||||||
|
# end_date: '2024-01-28'
|
||||||
|
# status: planned
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
cycles: []
|
||||||
22
plane-projects/t0f/work/milestones.yaml
Normal file
22
plane-projects/t0f/work/milestones.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Milestone Definitions
|
||||||
|
# Milestones are fixed checkpoints for tracking key deliverables.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync milestones from Plane.
|
||||||
|
#
|
||||||
|
# Note: Milestone support requires the Milestones feature to be enabled in
|
||||||
|
# your Plane workspace project settings.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# milestones:
|
||||||
|
# - name: Alpha Release
|
||||||
|
# target_date: '2024-03-31'
|
||||||
|
# work_items:
|
||||||
|
# - PROJ-1
|
||||||
|
# - PROJ-5
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: Beta Launch
|
||||||
|
# target_date: '2024-06-30'
|
||||||
|
# work_items: []
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
milestones: []
|
||||||
21
plane-projects/t0f/work/modules.yaml
Normal file
21
plane-projects/t0f/work/modules.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Module Definitions
|
||||||
|
# Modules group related work items by feature area or milestone.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync modules from Plane.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# modules:
|
||||||
|
# - name: Authentication
|
||||||
|
# description: User login, OAuth, and session management
|
||||||
|
# start_date: '2024-01-01'
|
||||||
|
# end_date: '2024-03-31'
|
||||||
|
# status: backlog
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: API Integration
|
||||||
|
# description: Third-party API integrations and webhooks
|
||||||
|
# start_date: '2024-02-01'
|
||||||
|
# end_date: '2024-03-15'
|
||||||
|
# status: in-progress
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
modules: []
|
||||||
35
plane-projects/t0f/work/pages.yaml
Normal file
35
plane-projects/t0f/work/pages.yaml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Project Pages
|
||||||
|
# Wiki pages scoped to this project.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync pages from Plane.
|
||||||
|
#
|
||||||
|
# Note: Pages support requires the Pages feature to be enabled in
|
||||||
|
# your Plane project settings (schema/features.yaml → pages: true).
|
||||||
|
#
|
||||||
|
# How it works:
|
||||||
|
# - Items WITHOUT an id → created on 'plane push' (id written back in-place)
|
||||||
|
# - Items WITH an id → skipped on push (no update API); use Plane UI to edit
|
||||||
|
# - Items absent locally → NOT deleted remotely
|
||||||
|
#
|
||||||
|
# Field reference:
|
||||||
|
# name (required) display name shown in Plane UI
|
||||||
|
# description_html (required for push) HTML content of the page
|
||||||
|
# owner email of the page owner (resolved on pull; useful for private pages)
|
||||||
|
# access public | private (default: public)
|
||||||
|
# color hex color string, e.g. '#FF6900' (optional)
|
||||||
|
# is_locked true | false (optional, default: false)
|
||||||
|
# id Server-assigned UUID — written back after push, do not set manually
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# pages:
|
||||||
|
# - name: Architecture Overview
|
||||||
|
# description_html: "<p>System architecture documentation.</p>"
|
||||||
|
# owner: alice@example.com
|
||||||
|
# access: public
|
||||||
|
# - name: Dev Notes
|
||||||
|
# description_html: "<p>Internal notes for the team.</p>"
|
||||||
|
# owner: bob@example.com
|
||||||
|
# access: private
|
||||||
|
# color: '#FF6900'
|
||||||
|
|
||||||
|
pages: []
|
||||||
55
plane-projects/t0f/work/workitems.yaml
Normal file
55
plane-projects/t0f/work/workitems.yaml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
workitems:
|
||||||
|
- title: "Apply — South Bend Opportunity Fund"
|
||||||
|
type: Task
|
||||||
|
state: Researching
|
||||||
|
priority: high
|
||||||
|
labels: [Loan, City Program]
|
||||||
|
description: |
|
||||||
|
Loans $1-30K + free business coaching. Apply at isbdc.ecenterdirect.com/signup.
|
||||||
|
Eligibility: South Bend business, revenues under $300K (we qualify — pre-revenue).
|
||||||
|
|
||||||
|
- title: "Apply — Bankable Black-Owned Business Fund"
|
||||||
|
type: Task
|
||||||
|
state: Researching
|
||||||
|
priority: high
|
||||||
|
labels: [Loan, Federal]
|
||||||
|
description: |
|
||||||
|
Up to $50K at low interest. bankable.org/loans.
|
||||||
|
Indiana Black-owned, unable to secure traditional bank loan.
|
||||||
|
|
||||||
|
- title: "Apply — Flagstar BIPOC Grant"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: medium
|
||||||
|
labels: [Grant]
|
||||||
|
description: |
|
||||||
|
$5K working capital grant. BIPOC-owned in Flagstar market area.
|
||||||
|
Check current application window.
|
||||||
|
|
||||||
|
- title: "Apply — SBA Loan ($65-80K)"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: high
|
||||||
|
labels: [Loan, Federal]
|
||||||
|
description: |
|
||||||
|
Traditional SBA loan. Target $65-80K. Need: LLC (done), EIN (done),
|
||||||
|
business plan, personal financials. Apply after Opportunity Fund coaching.
|
||||||
|
|
||||||
|
- title: "Apply — USDA Business Builder"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: medium
|
||||||
|
labels: [Grant, Federal]
|
||||||
|
description: |
|
||||||
|
Up to $100K grant for food businesses. ams.usda.gov.
|
||||||
|
Cyclical application windows — check dates.
|
||||||
|
|
||||||
|
- title: "Research — REAP Solar Grant eligibility"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: low
|
||||||
|
labels: [Grant, Federal, Tax Credit]
|
||||||
|
description: |
|
||||||
|
USDA REAP covers up to 50% of solar/battery costs. Need to confirm
|
||||||
|
trailer location is in a rural-eligible area (USDA eligibility map).
|
||||||
|
Stack with 30% federal ITC for up to 80% covered.
|
||||||
2
plane-projects/t0o/.gitignore
vendored
Normal file
2
plane-projects/t0o/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Plane CLI sync state
|
||||||
|
.plane/
|
||||||
15
plane-projects/t0o/plane.yaml
Normal file
15
plane-projects/t0o/plane.yaml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
type: project
|
||||||
|
workspace: shg
|
||||||
|
connection: sns-hospitality
|
||||||
|
project:
|
||||||
|
key: T0O
|
||||||
|
name: T00 Ops
|
||||||
|
description: "T00-DRIP operations — staffing, supplies, SOPs, daily operations, location management."
|
||||||
|
network: private
|
||||||
|
timezone: America/Indiana/Indianapolis
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
type: Task
|
||||||
|
workflow: default
|
||||||
|
|
||||||
|
template: default
|
||||||
38
plane-projects/t0o/schema/features.yaml
Normal file
38
plane-projects/t0o/schema/features.yaml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Project Feature Toggles
|
||||||
|
# Enable or disable features for this project.
|
||||||
|
# Changes here are applied when you run `plane schema push`.
|
||||||
|
#
|
||||||
|
# Data gating: cycles/modules data is only pushed when the flag is true.
|
||||||
|
# Set a flag to false to disable the feature AND skip pushing its data.
|
||||||
|
#
|
||||||
|
# Available features:
|
||||||
|
# cycles — time-boxed sprints / iterations
|
||||||
|
# modules — group work items by feature area
|
||||||
|
# pages — collaborative wiki pages
|
||||||
|
# views — saved filtered views
|
||||||
|
# intakes — public intake / triage form
|
||||||
|
# epics — hierarchical parent work items
|
||||||
|
# work_item_types — custom work item type definitions
|
||||||
|
# workflows — state-machine workflow rules
|
||||||
|
# parallel_cycles — allow multiple active cycles simultaneously
|
||||||
|
# manually_start_end_cycles — manually control cycle start/end instead of automatic
|
||||||
|
# project_updates — project progress update posts
|
||||||
|
# time_tracking — log time and view timesheets on work items
|
||||||
|
#
|
||||||
|
# Note: time_tracking is pushed differently under the hood — it's a plain
|
||||||
|
# project attribute (is_time_tracking_enabled), not part of the /features/
|
||||||
|
# API the rest of this file maps to 1:1 — but it lives here alongside the
|
||||||
|
# other toggles since that's where Plane's own UI groups it.
|
||||||
|
features:
|
||||||
|
cycles: true
|
||||||
|
modules: true
|
||||||
|
pages: true
|
||||||
|
views: true
|
||||||
|
intakes: false
|
||||||
|
epics: false
|
||||||
|
work_item_types: false
|
||||||
|
workflows: false
|
||||||
|
parallel_cycles: false
|
||||||
|
manually_start_end_cycles: false
|
||||||
|
project_updates: false
|
||||||
|
time_tracking: false
|
||||||
24
plane-projects/t0o/schema/labels.yaml
Normal file
24
plane-projects/t0o/schema/labels.yaml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
labels:
|
||||||
|
- name: Staffing
|
||||||
|
color: "#4B2E20"
|
||||||
|
|
||||||
|
- name: Supplies
|
||||||
|
color: "#D4AF37"
|
||||||
|
|
||||||
|
- name: SOPs
|
||||||
|
color: "#A3B18A"
|
||||||
|
|
||||||
|
- name: Location
|
||||||
|
color: "#E7B4B8"
|
||||||
|
|
||||||
|
- name: Equipment
|
||||||
|
color: "#B87333"
|
||||||
|
|
||||||
|
- name: Urgent
|
||||||
|
color: "#dc2626"
|
||||||
|
|
||||||
|
- name: Kiowa
|
||||||
|
color: "#A78A7A"
|
||||||
|
|
||||||
|
- name: Sam
|
||||||
|
color: "#6B7F99"
|
||||||
5
plane-projects/t0o/schema/members.yaml
Normal file
5
plane-projects/t0o/schema/members.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
members:
|
||||||
|
- id: ccd860e7-26e2-4ec3-9f02-f36668a1e9d2
|
||||||
|
email: samueljamesinc@snsnetworksolutions.net
|
||||||
|
display_name: samueljamesinc
|
||||||
|
role: admin
|
||||||
14
plane-projects/t0o/schema/page_templates.yaml
Normal file
14
plane-projects/t0o/schema/page_templates.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# page_templates.yaml — project-level page templates
|
||||||
|
# Each entry is a starter template for creating pages.
|
||||||
|
# Requires FeatureFlag.WORKITEM_TEMPLATES to be enabled on the Plane instance.
|
||||||
|
#
|
||||||
|
# Fields:
|
||||||
|
# id: server UUID (set after first push — do not edit)
|
||||||
|
# name: template display name
|
||||||
|
# template_data:
|
||||||
|
# name: default page name
|
||||||
|
# description_html: HTML content
|
||||||
|
# color: hex color (omit for default)
|
||||||
|
# logo_props: icon/emoji object
|
||||||
|
|
||||||
|
page_templates: []
|
||||||
36
plane-projects/t0o/schema/states.yaml
Normal file
36
plane-projects/t0o/schema/states.yaml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
states:
|
||||||
|
Backlog:
|
||||||
|
group: backlog
|
||||||
|
color: "#A78A7A"
|
||||||
|
allow_issue_creation: true
|
||||||
|
is_default: true
|
||||||
|
|
||||||
|
Todo:
|
||||||
|
group: unstarted
|
||||||
|
color: "#D4AF37"
|
||||||
|
allow_issue_creation: true
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
In Progress:
|
||||||
|
group: started
|
||||||
|
color: "#E7B4B8"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Blocked:
|
||||||
|
group: started
|
||||||
|
color: "#dc2626"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Done:
|
||||||
|
group: completed
|
||||||
|
color: "#A3B18A"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Cancelled:
|
||||||
|
group: cancelled
|
||||||
|
color: "#6B7F99"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
104
plane-projects/t0o/schema/workflows.yaml
Normal file
104
plane-projects/t0o/schema/workflows.yaml
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
# Workflow Definitions
|
||||||
|
# Defines state machines for work items with transitions and validation rules
|
||||||
|
#
|
||||||
|
# NOTE: A 'Default Workflow' is automatically created by Plane when the
|
||||||
|
# workflows feature is enabled. Do not define a default workflow here.
|
||||||
|
# This file should contain ONLY custom workflows.
|
||||||
|
#
|
||||||
|
# Reference: States are referenced by name from states.yaml
|
||||||
|
# State groups: backlog, unstarted, started, completed, cancelled
|
||||||
|
#
|
||||||
|
# Transition Types:
|
||||||
|
# - type: 'transition' (direct state change)
|
||||||
|
# - type: 'approval' (requires approvers before transition)
|
||||||
|
#
|
||||||
|
# Optional transition fields:
|
||||||
|
# - required_approvals: number of approvals needed (null = all approvers required)
|
||||||
|
# - approvers: list of user emails who can approve
|
||||||
|
# - pre_rules: pre-validation scripts
|
||||||
|
# - post_rules: post-action scripts
|
||||||
|
|
||||||
|
# Example: Custom Workflow for Feature Development
|
||||||
|
# Uncomment and customize for your workflow:
|
||||||
|
#
|
||||||
|
# workflows:
|
||||||
|
# Feature Workflow:
|
||||||
|
# description: Workflow optimized for feature development with QA and UAT stages
|
||||||
|
# is_active: false
|
||||||
|
# is_default: false
|
||||||
|
# work_item_types:
|
||||||
|
# - Feature
|
||||||
|
#
|
||||||
|
# states:
|
||||||
|
# - Backlog
|
||||||
|
# - Ready
|
||||||
|
# - In Progress
|
||||||
|
# - In Review
|
||||||
|
# - Testing
|
||||||
|
# - Done
|
||||||
|
#
|
||||||
|
# transitions:
|
||||||
|
# Backlog:
|
||||||
|
# - to: Ready
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Ready:
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
# - to: Backlog
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Progress:
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Review:
|
||||||
|
# - to: Testing
|
||||||
|
# type: transition
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Testing:
|
||||||
|
# - to: Done
|
||||||
|
# type: transition
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Done: {}
|
||||||
|
|
||||||
|
# Example: Bug Triage Workflow
|
||||||
|
# Uncomment and customize for your workflow:
|
||||||
|
#
|
||||||
|
# Bug Triage Workflow:
|
||||||
|
# description: Simplified workflow for bug tracking and resolution
|
||||||
|
# is_active: false
|
||||||
|
# is_default: false
|
||||||
|
# work_item_types:
|
||||||
|
# - Bug
|
||||||
|
#
|
||||||
|
# states:
|
||||||
|
# - Backlog
|
||||||
|
# - In Progress
|
||||||
|
# - In Review
|
||||||
|
# - Done
|
||||||
|
#
|
||||||
|
# transitions:
|
||||||
|
# Backlog:
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Progress:
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
# - to: Backlog
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Review:
|
||||||
|
# - to: Done
|
||||||
|
# type: transition
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Done: {}
|
||||||
|
|
||||||
|
workflows: {}
|
||||||
21
plane-projects/t0o/schema/workitem_templates.yaml
Normal file
21
plane-projects/t0o/schema/workitem_templates.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# workitem_templates.yaml — project-level workitem templates
|
||||||
|
# Each entry is a blueprint for creating work items.
|
||||||
|
# Requires FeatureFlag.WORKITEM_TEMPLATES to be enabled on the Plane instance.
|
||||||
|
#
|
||||||
|
# Fields:
|
||||||
|
# id: server UUID (set after first push — do not edit)
|
||||||
|
# name: template display name
|
||||||
|
# description: optional description shown in the template picker
|
||||||
|
# template_data:
|
||||||
|
# name: default work item name
|
||||||
|
# description_html: HTML description
|
||||||
|
# priority: none | low | medium | high | urgent
|
||||||
|
# state: state UUID
|
||||||
|
# assignees: list of user UUIDs
|
||||||
|
# label_ids: list of label UUIDs
|
||||||
|
# type_id: work item type UUID
|
||||||
|
# module_ids: list of module UUIDs
|
||||||
|
# estimate_point: null or string
|
||||||
|
# sub_workitems: list of sub-work-item dicts
|
||||||
|
|
||||||
|
workitem_templates: []
|
||||||
21
plane-projects/t0o/work/cycles.yaml
Normal file
21
plane-projects/t0o/work/cycles.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Cycle Definitions
|
||||||
|
# Cycles represent time-boxed sprints or iterations.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync cycles from Plane.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# cycles:
|
||||||
|
# - name: Sprint 1
|
||||||
|
# description: First sprint — core setup and scaffolding
|
||||||
|
# start_date: '2024-01-01'
|
||||||
|
# end_date: '2024-01-14'
|
||||||
|
# status: backlog
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: Sprint 2
|
||||||
|
# description: Second sprint — feature development
|
||||||
|
# start_date: '2024-01-15'
|
||||||
|
# end_date: '2024-01-28'
|
||||||
|
# status: planned
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
cycles: []
|
||||||
22
plane-projects/t0o/work/milestones.yaml
Normal file
22
plane-projects/t0o/work/milestones.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Milestone Definitions
|
||||||
|
# Milestones are fixed checkpoints for tracking key deliverables.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync milestones from Plane.
|
||||||
|
#
|
||||||
|
# Note: Milestone support requires the Milestones feature to be enabled in
|
||||||
|
# your Plane workspace project settings.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# milestones:
|
||||||
|
# - name: Alpha Release
|
||||||
|
# target_date: '2024-03-31'
|
||||||
|
# work_items:
|
||||||
|
# - PROJ-1
|
||||||
|
# - PROJ-5
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: Beta Launch
|
||||||
|
# target_date: '2024-06-30'
|
||||||
|
# work_items: []
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
milestones: []
|
||||||
21
plane-projects/t0o/work/modules.yaml
Normal file
21
plane-projects/t0o/work/modules.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Module Definitions
|
||||||
|
# Modules group related work items by feature area or milestone.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync modules from Plane.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# modules:
|
||||||
|
# - name: Authentication
|
||||||
|
# description: User login, OAuth, and session management
|
||||||
|
# start_date: '2024-01-01'
|
||||||
|
# end_date: '2024-03-31'
|
||||||
|
# status: backlog
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: API Integration
|
||||||
|
# description: Third-party API integrations and webhooks
|
||||||
|
# start_date: '2024-02-01'
|
||||||
|
# end_date: '2024-03-15'
|
||||||
|
# status: in-progress
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
modules: []
|
||||||
35
plane-projects/t0o/work/pages.yaml
Normal file
35
plane-projects/t0o/work/pages.yaml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Project Pages
|
||||||
|
# Wiki pages scoped to this project.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync pages from Plane.
|
||||||
|
#
|
||||||
|
# Note: Pages support requires the Pages feature to be enabled in
|
||||||
|
# your Plane project settings (schema/features.yaml → pages: true).
|
||||||
|
#
|
||||||
|
# How it works:
|
||||||
|
# - Items WITHOUT an id → created on 'plane push' (id written back in-place)
|
||||||
|
# - Items WITH an id → skipped on push (no update API); use Plane UI to edit
|
||||||
|
# - Items absent locally → NOT deleted remotely
|
||||||
|
#
|
||||||
|
# Field reference:
|
||||||
|
# name (required) display name shown in Plane UI
|
||||||
|
# description_html (required for push) HTML content of the page
|
||||||
|
# owner email of the page owner (resolved on pull; useful for private pages)
|
||||||
|
# access public | private (default: public)
|
||||||
|
# color hex color string, e.g. '#FF6900' (optional)
|
||||||
|
# is_locked true | false (optional, default: false)
|
||||||
|
# id Server-assigned UUID — written back after push, do not set manually
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# pages:
|
||||||
|
# - name: Architecture Overview
|
||||||
|
# description_html: "<p>System architecture documentation.</p>"
|
||||||
|
# owner: alice@example.com
|
||||||
|
# access: public
|
||||||
|
# - name: Dev Notes
|
||||||
|
# description_html: "<p>Internal notes for the team.</p>"
|
||||||
|
# owner: bob@example.com
|
||||||
|
# access: private
|
||||||
|
# color: '#FF6900'
|
||||||
|
|
||||||
|
pages: []
|
||||||
48
plane-projects/t0o/work/workitems.yaml
Normal file
48
plane-projects/t0o/work/workitems.yaml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
workitems:
|
||||||
|
- title: "Hire Location Manager (Savannah declined)"
|
||||||
|
type: Task
|
||||||
|
state: Todo
|
||||||
|
priority: high
|
||||||
|
labels: [Staffing, Kiowa]
|
||||||
|
description: |
|
||||||
|
Find replacement Location Manager for T00-DRIP. Savannah Putman declined the role.
|
||||||
|
Requirements: coffee/food service experience, can open/close solo, reliable transportation,
|
||||||
|
available 5am-2pm 6 days/week. Kiowa to recruit.
|
||||||
|
|
||||||
|
- title: "Validate supply checklist"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: medium
|
||||||
|
labels: [Supplies]
|
||||||
|
description: |
|
||||||
|
Supply checklist (CSV) is in Google Drive → T00-09-COMMON/Ops/.
|
||||||
|
New Location Manager needs to review, validate quantities, add missing items,
|
||||||
|
note preferred brands.
|
||||||
|
|
||||||
|
- title: "Create opening/closing SOP"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: medium
|
||||||
|
labels: [SOPs]
|
||||||
|
description: |
|
||||||
|
Document the daily open and close procedure for the trailer.
|
||||||
|
Include: generator start, equipment warmup, POS login, cash drawer count,
|
||||||
|
end-of-day cleanup, shutdown sequence, security check.
|
||||||
|
|
||||||
|
- title: "Create daily supply ordering SOP"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: low
|
||||||
|
labels: [SOPs, Supplies]
|
||||||
|
description: |
|
||||||
|
Define how the Location Manager orders weekly supplies.
|
||||||
|
Who approves? Budget limits? Preferred vendors (Bendix, Dean Supply, Amazon).
|
||||||
|
|
||||||
|
- title: "Set up Square POS account"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: medium
|
||||||
|
labels: [Equipment, Sam]
|
||||||
|
description: |
|
||||||
|
Create Square account for T00-DRIP. Link to business bank account (once opened).
|
||||||
|
Configure menu items, pricing, tax settings.
|
||||||
13
plane-projects/t0o/workspace.yaml
Normal file
13
plane-projects/t0o/workspace.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Workspace Configuration
|
||||||
|
# Synced from Plane. Contains workspace features and member information.
|
||||||
|
#
|
||||||
|
# Sections:
|
||||||
|
# - workspace: Workspace slug
|
||||||
|
# - workspace_features: Feature flags (read-only)
|
||||||
|
# - work_item_types: Workspace-level type definitions (read-only)
|
||||||
|
# - members: Workspace members (read-only)
|
||||||
|
workspace: shg
|
||||||
|
members:
|
||||||
|
- id: ccd860e7-26e2-4ec3-9f02-f36668a1e9d2
|
||||||
|
email: samueljamesinc@snsnetworksolutions.net
|
||||||
|
display_name: samueljamesinc
|
||||||
2
plane-projects/t0r/.gitignore
vendored
Normal file
2
plane-projects/t0r/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Plane CLI sync state
|
||||||
|
.plane/
|
||||||
15
plane-projects/t0r/plane.yaml
Normal file
15
plane-projects/t0r/plane.yaml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
type: project
|
||||||
|
workspace: shg
|
||||||
|
connection: sns-hospitality
|
||||||
|
project:
|
||||||
|
key: T0R
|
||||||
|
name: T00 Research
|
||||||
|
description: "T00-DRIP research — location scouting, vendor comparisons, Enterprise Zone mapping, market analysis."
|
||||||
|
network: private
|
||||||
|
timezone: America/Indiana/Indianapolis
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
type: Task
|
||||||
|
workflow: default
|
||||||
|
|
||||||
|
template: default
|
||||||
38
plane-projects/t0r/schema/features.yaml
Normal file
38
plane-projects/t0r/schema/features.yaml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Project Feature Toggles
|
||||||
|
# Enable or disable features for this project.
|
||||||
|
# Changes here are applied when you run `plane schema push`.
|
||||||
|
#
|
||||||
|
# Data gating: cycles/modules data is only pushed when the flag is true.
|
||||||
|
# Set a flag to false to disable the feature AND skip pushing its data.
|
||||||
|
#
|
||||||
|
# Available features:
|
||||||
|
# cycles — time-boxed sprints / iterations
|
||||||
|
# modules — group work items by feature area
|
||||||
|
# pages — collaborative wiki pages
|
||||||
|
# views — saved filtered views
|
||||||
|
# intakes — public intake / triage form
|
||||||
|
# epics — hierarchical parent work items
|
||||||
|
# work_item_types — custom work item type definitions
|
||||||
|
# workflows — state-machine workflow rules
|
||||||
|
# parallel_cycles — allow multiple active cycles simultaneously
|
||||||
|
# manually_start_end_cycles — manually control cycle start/end instead of automatic
|
||||||
|
# project_updates — project progress update posts
|
||||||
|
# time_tracking — log time and view timesheets on work items
|
||||||
|
#
|
||||||
|
# Note: time_tracking is pushed differently under the hood — it's a plain
|
||||||
|
# project attribute (is_time_tracking_enabled), not part of the /features/
|
||||||
|
# API the rest of this file maps to 1:1 — but it lives here alongside the
|
||||||
|
# other toggles since that's where Plane's own UI groups it.
|
||||||
|
features:
|
||||||
|
cycles: true
|
||||||
|
modules: true
|
||||||
|
pages: true
|
||||||
|
views: true
|
||||||
|
intakes: false
|
||||||
|
epics: false
|
||||||
|
work_item_types: false
|
||||||
|
workflows: false
|
||||||
|
parallel_cycles: false
|
||||||
|
manually_start_end_cycles: false
|
||||||
|
project_updates: false
|
||||||
|
time_tracking: false
|
||||||
18
plane-projects/t0r/schema/labels.yaml
Normal file
18
plane-projects/t0r/schema/labels.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
labels:
|
||||||
|
- name: Location
|
||||||
|
color: "#4B2E20"
|
||||||
|
|
||||||
|
- name: Vendor
|
||||||
|
color: "#D4AF37"
|
||||||
|
|
||||||
|
- name: Enterprise Zone
|
||||||
|
color: "#A3B18A"
|
||||||
|
|
||||||
|
- name: Competitor
|
||||||
|
color: "#dc2626"
|
||||||
|
|
||||||
|
- name: High Traffic
|
||||||
|
color: "#B87333"
|
||||||
|
|
||||||
|
- name: Kiowa
|
||||||
|
color: "#A78A7A"
|
||||||
5
plane-projects/t0r/schema/members.yaml
Normal file
5
plane-projects/t0r/schema/members.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
members:
|
||||||
|
- id: ccd860e7-26e2-4ec3-9f02-f36668a1e9d2
|
||||||
|
email: samueljamesinc@snsnetworksolutions.net
|
||||||
|
display_name: samueljamesinc
|
||||||
|
role: admin
|
||||||
14
plane-projects/t0r/schema/page_templates.yaml
Normal file
14
plane-projects/t0r/schema/page_templates.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# page_templates.yaml — project-level page templates
|
||||||
|
# Each entry is a starter template for creating pages.
|
||||||
|
# Requires FeatureFlag.WORKITEM_TEMPLATES to be enabled on the Plane instance.
|
||||||
|
#
|
||||||
|
# Fields:
|
||||||
|
# id: server UUID (set after first push — do not edit)
|
||||||
|
# name: template display name
|
||||||
|
# template_data:
|
||||||
|
# name: default page name
|
||||||
|
# description_html: HTML content
|
||||||
|
# color: hex color (omit for default)
|
||||||
|
# logo_props: icon/emoji object
|
||||||
|
|
||||||
|
page_templates: []
|
||||||
36
plane-projects/t0r/schema/states.yaml
Normal file
36
plane-projects/t0r/schema/states.yaml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
states:
|
||||||
|
Backlog:
|
||||||
|
group: backlog
|
||||||
|
color: "#A78A7A"
|
||||||
|
allow_issue_creation: true
|
||||||
|
is_default: true
|
||||||
|
|
||||||
|
Investigating:
|
||||||
|
group: unstarted
|
||||||
|
color: "#D4AF37"
|
||||||
|
allow_issue_creation: true
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Contacted:
|
||||||
|
group: started
|
||||||
|
color: "#E7B4B8"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Negotiating:
|
||||||
|
group: started
|
||||||
|
color: "#B87333"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Secured:
|
||||||
|
group: completed
|
||||||
|
color: "#A3B18A"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
|
|
||||||
|
Rejected:
|
||||||
|
group: cancelled
|
||||||
|
color: "#6B7F99"
|
||||||
|
allow_issue_creation: false
|
||||||
|
is_default: false
|
||||||
59
plane-projects/t0r/schema/types.yaml
Normal file
59
plane-projects/t0r/schema/types.yaml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# Work Item Type Definitions
|
||||||
|
#
|
||||||
|
# NOTE: Base work item types (Bug, Feature, Task, Chore, Improvement) are
|
||||||
|
# automatically created by Plane. This file should be used to:
|
||||||
|
# 1. Add custom properties to existing types
|
||||||
|
# 2. Create custom work item types for your organization
|
||||||
|
#
|
||||||
|
# Built-in fields available on all types: priority, due_date, estimate, start_date, etc.
|
||||||
|
#
|
||||||
|
# Example: Customize an existing work item type with custom properties
|
||||||
|
# work_item_types:
|
||||||
|
# Bug:
|
||||||
|
# description: A defect or issue requiring fix
|
||||||
|
# properties:
|
||||||
|
# - name: severity
|
||||||
|
# type: option
|
||||||
|
# required: true
|
||||||
|
# options:
|
||||||
|
# - cosmetic
|
||||||
|
# - minor
|
||||||
|
# - major
|
||||||
|
# - critical
|
||||||
|
# - name: environment
|
||||||
|
# type: option
|
||||||
|
# options:
|
||||||
|
# - development
|
||||||
|
# - staging
|
||||||
|
# - production
|
||||||
|
# - name: is_regression
|
||||||
|
# type: boolean
|
||||||
|
#
|
||||||
|
# Example: Customize Feature type with custom properties
|
||||||
|
# Feature:
|
||||||
|
# description: Net-new functionality or capability
|
||||||
|
# properties:
|
||||||
|
# - name: design_link
|
||||||
|
# type: url
|
||||||
|
# - name: target_date
|
||||||
|
# type: datetime
|
||||||
|
# - name: customer_requested
|
||||||
|
# type: boolean
|
||||||
|
#
|
||||||
|
# Example: Create a custom work item type
|
||||||
|
# RFC (Request for Comments):
|
||||||
|
# description: Design proposal requiring team feedback
|
||||||
|
# properties:
|
||||||
|
# - name: author
|
||||||
|
# type: text
|
||||||
|
# - name: review_deadline
|
||||||
|
# type: datetime
|
||||||
|
# - name: approval_status
|
||||||
|
# type: option
|
||||||
|
# options:
|
||||||
|
# - draft
|
||||||
|
# - under_review
|
||||||
|
# - approved
|
||||||
|
# - rejected
|
||||||
|
|
||||||
|
work_item_types: {}
|
||||||
104
plane-projects/t0r/schema/workflows.yaml
Normal file
104
plane-projects/t0r/schema/workflows.yaml
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
# Workflow Definitions
|
||||||
|
# Defines state machines for work items with transitions and validation rules
|
||||||
|
#
|
||||||
|
# NOTE: A 'Default Workflow' is automatically created by Plane when the
|
||||||
|
# workflows feature is enabled. Do not define a default workflow here.
|
||||||
|
# This file should contain ONLY custom workflows.
|
||||||
|
#
|
||||||
|
# Reference: States are referenced by name from states.yaml
|
||||||
|
# State groups: backlog, unstarted, started, completed, cancelled
|
||||||
|
#
|
||||||
|
# Transition Types:
|
||||||
|
# - type: 'transition' (direct state change)
|
||||||
|
# - type: 'approval' (requires approvers before transition)
|
||||||
|
#
|
||||||
|
# Optional transition fields:
|
||||||
|
# - required_approvals: number of approvals needed (null = all approvers required)
|
||||||
|
# - approvers: list of user emails who can approve
|
||||||
|
# - pre_rules: pre-validation scripts
|
||||||
|
# - post_rules: post-action scripts
|
||||||
|
|
||||||
|
# Example: Custom Workflow for Feature Development
|
||||||
|
# Uncomment and customize for your workflow:
|
||||||
|
#
|
||||||
|
# workflows:
|
||||||
|
# Feature Workflow:
|
||||||
|
# description: Workflow optimized for feature development with QA and UAT stages
|
||||||
|
# is_active: false
|
||||||
|
# is_default: false
|
||||||
|
# work_item_types:
|
||||||
|
# - Feature
|
||||||
|
#
|
||||||
|
# states:
|
||||||
|
# - Backlog
|
||||||
|
# - Ready
|
||||||
|
# - In Progress
|
||||||
|
# - In Review
|
||||||
|
# - Testing
|
||||||
|
# - Done
|
||||||
|
#
|
||||||
|
# transitions:
|
||||||
|
# Backlog:
|
||||||
|
# - to: Ready
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Ready:
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
# - to: Backlog
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Progress:
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Review:
|
||||||
|
# - to: Testing
|
||||||
|
# type: transition
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Testing:
|
||||||
|
# - to: Done
|
||||||
|
# type: transition
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Done: {}
|
||||||
|
|
||||||
|
# Example: Bug Triage Workflow
|
||||||
|
# Uncomment and customize for your workflow:
|
||||||
|
#
|
||||||
|
# Bug Triage Workflow:
|
||||||
|
# description: Simplified workflow for bug tracking and resolution
|
||||||
|
# is_active: false
|
||||||
|
# is_default: false
|
||||||
|
# work_item_types:
|
||||||
|
# - Bug
|
||||||
|
#
|
||||||
|
# states:
|
||||||
|
# - Backlog
|
||||||
|
# - In Progress
|
||||||
|
# - In Review
|
||||||
|
# - Done
|
||||||
|
#
|
||||||
|
# transitions:
|
||||||
|
# Backlog:
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Progress:
|
||||||
|
# - to: In Review
|
||||||
|
# type: transition
|
||||||
|
# - to: Backlog
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# In Review:
|
||||||
|
# - to: Done
|
||||||
|
# type: transition
|
||||||
|
# - to: In Progress
|
||||||
|
# type: transition
|
||||||
|
#
|
||||||
|
# Done: {}
|
||||||
|
|
||||||
|
workflows: {}
|
||||||
21
plane-projects/t0r/schema/workitem_templates.yaml
Normal file
21
plane-projects/t0r/schema/workitem_templates.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# workitem_templates.yaml — project-level workitem templates
|
||||||
|
# Each entry is a blueprint for creating work items.
|
||||||
|
# Requires FeatureFlag.WORKITEM_TEMPLATES to be enabled on the Plane instance.
|
||||||
|
#
|
||||||
|
# Fields:
|
||||||
|
# id: server UUID (set after first push — do not edit)
|
||||||
|
# name: template display name
|
||||||
|
# description: optional description shown in the template picker
|
||||||
|
# template_data:
|
||||||
|
# name: default work item name
|
||||||
|
# description_html: HTML description
|
||||||
|
# priority: none | low | medium | high | urgent
|
||||||
|
# state: state UUID
|
||||||
|
# assignees: list of user UUIDs
|
||||||
|
# label_ids: list of label UUIDs
|
||||||
|
# type_id: work item type UUID
|
||||||
|
# module_ids: list of module UUIDs
|
||||||
|
# estimate_point: null or string
|
||||||
|
# sub_workitems: list of sub-work-item dicts
|
||||||
|
|
||||||
|
workitem_templates: []
|
||||||
21
plane-projects/t0r/work/cycles.yaml
Normal file
21
plane-projects/t0r/work/cycles.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Cycle Definitions
|
||||||
|
# Cycles represent time-boxed sprints or iterations.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync cycles from Plane.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# cycles:
|
||||||
|
# - name: Sprint 1
|
||||||
|
# description: First sprint — core setup and scaffolding
|
||||||
|
# start_date: '2024-01-01'
|
||||||
|
# end_date: '2024-01-14'
|
||||||
|
# status: backlog
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: Sprint 2
|
||||||
|
# description: Second sprint — feature development
|
||||||
|
# start_date: '2024-01-15'
|
||||||
|
# end_date: '2024-01-28'
|
||||||
|
# status: planned
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
cycles: []
|
||||||
22
plane-projects/t0r/work/milestones.yaml
Normal file
22
plane-projects/t0r/work/milestones.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Milestone Definitions
|
||||||
|
# Milestones are fixed checkpoints for tracking key deliverables.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync milestones from Plane.
|
||||||
|
#
|
||||||
|
# Note: Milestone support requires the Milestones feature to be enabled in
|
||||||
|
# your Plane workspace project settings.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# milestones:
|
||||||
|
# - name: Alpha Release
|
||||||
|
# target_date: '2024-03-31'
|
||||||
|
# work_items:
|
||||||
|
# - PROJ-1
|
||||||
|
# - PROJ-5
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: Beta Launch
|
||||||
|
# target_date: '2024-06-30'
|
||||||
|
# work_items: []
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
milestones: []
|
||||||
21
plane-projects/t0r/work/modules.yaml
Normal file
21
plane-projects/t0r/work/modules.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Module Definitions
|
||||||
|
# Modules group related work items by feature area or milestone.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync modules from Plane.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# modules:
|
||||||
|
# - name: Authentication
|
||||||
|
# description: User login, OAuth, and session management
|
||||||
|
# start_date: '2024-01-01'
|
||||||
|
# end_date: '2024-03-31'
|
||||||
|
# status: backlog
|
||||||
|
# id: <uuid>
|
||||||
|
# - name: API Integration
|
||||||
|
# description: Third-party API integrations and webhooks
|
||||||
|
# start_date: '2024-02-01'
|
||||||
|
# end_date: '2024-03-15'
|
||||||
|
# status: in-progress
|
||||||
|
# id: <uuid>
|
||||||
|
|
||||||
|
modules: []
|
||||||
35
plane-projects/t0r/work/pages.yaml
Normal file
35
plane-projects/t0r/work/pages.yaml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Project Pages
|
||||||
|
# Wiki pages scoped to this project.
|
||||||
|
# Operational data — lives in work/ (not schema/).
|
||||||
|
# Tip: run 'plane pull' to sync pages from Plane.
|
||||||
|
#
|
||||||
|
# Note: Pages support requires the Pages feature to be enabled in
|
||||||
|
# your Plane project settings (schema/features.yaml → pages: true).
|
||||||
|
#
|
||||||
|
# How it works:
|
||||||
|
# - Items WITHOUT an id → created on 'plane push' (id written back in-place)
|
||||||
|
# - Items WITH an id → skipped on push (no update API); use Plane UI to edit
|
||||||
|
# - Items absent locally → NOT deleted remotely
|
||||||
|
#
|
||||||
|
# Field reference:
|
||||||
|
# name (required) display name shown in Plane UI
|
||||||
|
# description_html (required for push) HTML content of the page
|
||||||
|
# owner email of the page owner (resolved on pull; useful for private pages)
|
||||||
|
# access public | private (default: public)
|
||||||
|
# color hex color string, e.g. '#FF6900' (optional)
|
||||||
|
# is_locked true | false (optional, default: false)
|
||||||
|
# id Server-assigned UUID — written back after push, do not set manually
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# pages:
|
||||||
|
# - name: Architecture Overview
|
||||||
|
# description_html: "<p>System architecture documentation.</p>"
|
||||||
|
# owner: alice@example.com
|
||||||
|
# access: public
|
||||||
|
# - name: Dev Notes
|
||||||
|
# description_html: "<p>Internal notes for the team.</p>"
|
||||||
|
# owner: bob@example.com
|
||||||
|
# access: private
|
||||||
|
# color: '#FF6900'
|
||||||
|
|
||||||
|
pages: []
|
||||||
51
plane-projects/t0r/work/workitems.yaml
Normal file
51
plane-projects/t0r/work/workitems.yaml
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
workitems:
|
||||||
|
- title: "Contact property owner — Maxi's Food & Spirit Barn (114 W Ireland Rd)"
|
||||||
|
type: Task
|
||||||
|
state: Investigating
|
||||||
|
priority: high
|
||||||
|
labels: [Location, Kiowa]
|
||||||
|
description: |
|
||||||
|
CLOSED business. Lot may be available for lease.
|
||||||
|
Address: 114 W Ireland Rd, South Bend, IN 46614
|
||||||
|
Maps: https://maps.app.goo.gl/LC6Aw2SXyFxV9Ho7A
|
||||||
|
Task: Find property owner, ask about lot rental for mobile coffee trailer.
|
||||||
|
|
||||||
|
- title: "Contact property owner — Big Lots (1911 E Ireland Rd)"
|
||||||
|
type: Task
|
||||||
|
state: Investigating
|
||||||
|
priority: high
|
||||||
|
labels: [Location, Kiowa, High Traffic]
|
||||||
|
description: |
|
||||||
|
PERMANENTLY CLOSED. Large lot, high visibility on Ireland Rd.
|
||||||
|
Address: 1911 E Ireland Rd, South Bend, IN 46614
|
||||||
|
Maps: https://maps.app.goo.gl/XoYgFzn9zj8XjG1W7
|
||||||
|
Task: Find property owner/management company, inquire about lot lease.
|
||||||
|
|
||||||
|
- title: "Map Enterprise Zones in South Bend / St. Joseph County"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: medium
|
||||||
|
labels: [Enterprise Zone, Kiowa]
|
||||||
|
description: |
|
||||||
|
Get the South Bend Enterprise Zone map. Cross-reference with location candidates.
|
||||||
|
Operating in a zone = automatic state tax credits (employee deduction, employment
|
||||||
|
expense credit, loan interest credit, investment cost credit).
|
||||||
|
Contact: Urban Enterprise Association of South Bend.
|
||||||
|
|
||||||
|
- title: "Research Walmart/Meijer lot rental programs"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: medium
|
||||||
|
labels: [Location]
|
||||||
|
description: |
|
||||||
|
Some Walmart locations have a formal vendor/lease program for parking lot vendors.
|
||||||
|
Research which South Bend/Mishawaka Walmarts allow it and the application process.
|
||||||
|
|
||||||
|
- title: "Scout Notre Dame campus perimeter locations"
|
||||||
|
type: Task
|
||||||
|
state: Backlog
|
||||||
|
priority: low
|
||||||
|
labels: [Location, High Traffic]
|
||||||
|
description: |
|
||||||
|
Game days = 80,000+ people. Off-campus parking lots near stadium.
|
||||||
|
Identify lot owners, seasonal lease potential (football season Sept-Nov).
|
||||||
153
products/secure/sns-auth-research.md
Normal file
153
products/secure/sns-auth-research.md
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
# SNS Auth — CLI Identity Gateway (Future Project)
|
||||||
|
|
||||||
|
**Status**: Research / Pre-development
|
||||||
|
**Target market**: Small to mid-size businesses
|
||||||
|
**Concept**: A terminal-based authentication tool that issues short-lived credentials after hardware/passkey verification. One login → all internal tools authenticated. The `mwinit` pattern, productized for SMBs.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Problem Statement
|
||||||
|
|
||||||
|
Small companies use: static API keys in `.env` files, long-lived SSH keys, shared passwords, maybe 2FA on a web UI. There is no turnkey CLI-first auth system aimed at small businesses who want to secure internal tooling (scripts, APIs, CI, servers) without a bloated web portal.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Product Shape
|
||||||
|
|
||||||
|
```
|
||||||
|
sns-auth <- single Go binary, ~15MB
|
||||||
|
├── login <- FIDO2/passkey tap (or TOTP fallback)
|
||||||
|
├── status <- session info, expiry, scopes
|
||||||
|
├── token [--scope X] <- mint a scoped short-lived token
|
||||||
|
├── exec -- <cmd> <- run command with creds injected (env vars)
|
||||||
|
├── secret get/set <name> <- encrypted secret store (age or bw-backed)
|
||||||
|
├── enroll <- first-time device registration
|
||||||
|
├── revoke [--all] <- kill sessions
|
||||||
|
├── audit <- recent auth events
|
||||||
|
└── admin <- user/device/scope management (server-side)
|
||||||
|
|
||||||
|
sns-auth-server <- lightweight daemon (systemd socket-activated)
|
||||||
|
├── /auth/begin, /auth/finish <- WebAuthn ceremony
|
||||||
|
├── /token/issue <- scoped token mint
|
||||||
|
├── /token/revoke <- revocation
|
||||||
|
├── /audit/log <- append-only event log
|
||||||
|
├── /admin/* <- user/device CRUD
|
||||||
|
└── SQLite backend <- zero external deps
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Feature Set
|
||||||
|
|
||||||
|
### Authentication
|
||||||
|
- Passwordless primary auth — FIDO2/WebAuthn hardware key or passkey
|
||||||
|
- Short-lived session tokens — 8-24hr expiry, auto-refresh, forced re-auth after expiry
|
||||||
|
- Device binding — token locked to machine fingerprint (hostname + MAC + machine-id)
|
||||||
|
- TOTP fallback — for environments without hardware keys
|
||||||
|
- Offline grace period — cached credential works N minutes without server contact
|
||||||
|
|
||||||
|
### Authorization
|
||||||
|
- Role-based scopes — each token carries explicit scopes (e.g. `infra:read`, `deploy:write`)
|
||||||
|
- Service-specific sub-tokens — `sns-auth token --scope git` mints narrow token for one service
|
||||||
|
- Deny-by-default — no scope = no access
|
||||||
|
|
||||||
|
### Credential Management
|
||||||
|
- Secrets vault integration — `sns-auth secret get <name>` fetches from encrypted store
|
||||||
|
- Automatic credential injection — `sns-auth exec -- docker push ...` injects env vars
|
||||||
|
- Rotation enforcement — tracks long-lived token expiry, warns/blocks when overdue
|
||||||
|
|
||||||
|
### Audit & Security
|
||||||
|
- Append-only audit log — every auth event logged with timestamp + device + IP
|
||||||
|
- Session revocation — `sns-auth revoke --all` kills all active sessions instantly
|
||||||
|
- Tamper detection — CLI binary checks its own integrity on launch
|
||||||
|
- Lockout policy — brute-force protection (irrelevant with FIDO2 but defense-in-depth)
|
||||||
|
|
||||||
|
### Operations
|
||||||
|
- Single binary — one Go binary, zero runtime deps
|
||||||
|
- Lightweight server — SQLite backend, runs on any Linux box
|
||||||
|
- Mesh-aware — works over private networks (NetBird, Tailscale, WireGuard)
|
||||||
|
- Graceful degradation — cached sessions survive server downtime until expiry
|
||||||
|
- Bootstrap mode — first-run device enrollment with one-time code
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Competitive Advantage Over Current SMB Options
|
||||||
|
|
||||||
|
| What they have now | What sns-auth provides |
|
||||||
|
|---|---|
|
||||||
|
| Shared `.env` files with API keys | Zero standing credentials — everything expires |
|
||||||
|
| Password manager + hope | Hardware key / passkey required for any credential |
|
||||||
|
| No audit trail | Every token issuance, secret access, session logged |
|
||||||
|
| SSH keys that never rotate | Short-lived SSH certs (8hr), auto-expire |
|
||||||
|
| "Who has access?" = guessing | `sns-auth admin list` shows all active sessions/devices |
|
||||||
|
| Each tool has its own login | One `sns-auth login` → all tools authenticated |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Open Source Foundations (build from, not fork)
|
||||||
|
|
||||||
|
### Recommended: Clean-room build using permissive libraries
|
||||||
|
|
||||||
|
All BSD/Apache/MIT — fully closeable source:
|
||||||
|
|
||||||
|
| Library | Purpose | License |
|
||||||
|
|---------|---------|---------|
|
||||||
|
| `github.com/go-webauthn/webauthn` | WebAuthn/FIDO2 ceremonies | BSD-3 |
|
||||||
|
| `github.com/lestrrat-go/jwx` | JWT/JWE/JWK token handling | MIT |
|
||||||
|
| `github.com/mattn/go-sqlite3` | Storage (users, sessions, audit) | MIT |
|
||||||
|
| `github.com/spf13/cobra` | CLI framework | Apache-2.0 |
|
||||||
|
| `golang.org/x/crypto` | Crypto primitives (age, argon2) | BSD-3 |
|
||||||
|
|
||||||
|
### Reference implementations (study, don't fork directly)
|
||||||
|
|
||||||
|
| Project | What to steal | URL | License |
|
||||||
|
|---------|--------------|-----|---------|
|
||||||
|
| **Vouch** (vouch.sh) | UX flow: YubiKey tap → 8hr session → SSH/AWS/Git creds. Scoped token issuance, credential helper pattern. | vouch.sh | Apache-2.0/MIT (CLI) |
|
||||||
|
| **Smallstep CLI** | Command structure, browser-callback OAuth flow, cert renewal logic, shell integration. | github.com/smallstep/cli | Apache-2.0 |
|
||||||
|
| **Hanko** | Passkey auth engine, user management, JWT session handling. Go backend with clean API. | github.com/teamhanko/hanko | AGPL-3.0 (caution — study only) |
|
||||||
|
| **Passwordless-Auth-Rust** | WebAuthn + TOTP + magic link flow, JWT revocation, SQLite backend. Architecture reference. | github.com/hoangsonww/Passwordless-Auth-Rust | Check repo |
|
||||||
|
|
||||||
|
### Pieces to steal from specific projects
|
||||||
|
|
||||||
|
| Project | Steal what |
|
||||||
|
|---------|-----------|
|
||||||
|
| Kefmat/zero-trust-token-authority | Merkle tree audit log, DPoP proof-of-possession binding |
|
||||||
|
| kontext-security/kontext-cli | Credential injection pattern (`exec -- command`), scoped access model |
|
||||||
|
| kanidm/webauthn-rs | Battle-tested WebAuthn implementation (Rust reference if ever needed) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tech Decisions
|
||||||
|
|
||||||
|
- **Language**: Go (single static binary, cross-compile, same ecosystem as Smallstep/Hanko)
|
||||||
|
- **Storage**: SQLite (zero-dependency, embedded, good enough for 10k+ users)
|
||||||
|
- **Crypto**: Ed25519 for signing, AES-256-GCM for secrets at rest, Argon2id for any key derivation
|
||||||
|
- **Transport**: HTTPS (TLS 1.3) between CLI and server; mTLS optional for high-security deployments
|
||||||
|
- **Distribution**: Single binary download, Docker image for server, systemd unit file
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Development Phases
|
||||||
|
|
||||||
|
| Phase | What | Estimated effort |
|
||||||
|
|-------|------|------------------|
|
||||||
|
| **1 - MVP** | Passkey auth + JWT minting, CLI client (`login`/`status`/`token`/`exec`), SQLite audit | 4-5 weekends |
|
||||||
|
| **2 - Polish** | Device enrollment, TOTP fallback, `secret` command (age-backed), branding, docs | 3-4 weekends |
|
||||||
|
| **3 - Productize** | Install script, Docker compose for server, admin TUI, pricing page, landing site | 3-4 weekends |
|
||||||
|
| **4 - Harden** | Security audit, pen-test, binary tamper detection, key ceremony documentation | Ongoing |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Business Model Options
|
||||||
|
|
||||||
|
- **Open-core**: CLI + single-user server free; multi-user, team management, SSO bridge = paid
|
||||||
|
- **Per-seat**: Free for 1-3 users, paid per seat after (standard SMB model)
|
||||||
|
- **Appliance**: Ship a pre-configured LXC/VM image customers drop into their infra
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Research date: 2026-08-04
|
||||||
|
- This tool does NOT compete with Okta/Auth0 (those are web-app identity providers). This is CLI-first infra auth — closer to HashiCorp Vault's auth methods but simpler and standalone.
|
||||||
|
- Potential name candidates: sns-auth, gate, sentinel, keypost (TBD)
|
||||||
222
scripts/setup-gdrive-mount.sh
Normal file
222
scripts/setup-gdrive-mount.sh
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# setup-gdrive-mount.sh — Install rclone, configure Google Drive, mount at ~/gdrive
|
||||||
|
# Run ON ws (not remotely). Requires a browser for OAuth.
|
||||||
|
# Usage: bash setup-gdrive-mount.sh
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
LOG="/tmp/gdrive-setup-$(date +%Y%m%d-%H%M%S).log"
|
||||||
|
MOUNT_POINT="$HOME/gdrive"
|
||||||
|
REMOTE_NAME="gdrive"
|
||||||
|
SERVICE_FILE="$HOME/.config/systemd/user/gdrive-mount.service"
|
||||||
|
|
||||||
|
log() { echo "[$(date '+%H:%M:%S')] $*" | tee -a "$LOG"; }
|
||||||
|
err() { echo "[$(date '+%H:%M:%S')] ERROR: $*" | tee -a "$LOG" >&2; }
|
||||||
|
|
||||||
|
log "=== Google Drive Mount Setup ==="
|
||||||
|
log "Log file: $LOG"
|
||||||
|
log ""
|
||||||
|
|
||||||
|
# --- Step 1: Check/install dependencies ---
|
||||||
|
log "Step 1: Checking dependencies..."
|
||||||
|
|
||||||
|
if ! command -v fusermount &>/dev/null && ! command -v fusermount3 &>/dev/null; then
|
||||||
|
log " Installing fuse3..."
|
||||||
|
sudo apt-get update -qq && sudo apt-get install -y fuse3 >> "$LOG" 2>&1
|
||||||
|
if ! command -v fusermount3 &>/dev/null; then
|
||||||
|
err "fuse3 install failed. Cannot mount without FUSE."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
log " fuse3 installed."
|
||||||
|
else
|
||||||
|
log " FUSE already installed."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v rclone &>/dev/null; then
|
||||||
|
CURRENT_VER=$(rclone version --check 2>/dev/null | head -1 || rclone --version | head -1)
|
||||||
|
log " rclone already installed: $CURRENT_VER"
|
||||||
|
read -rp " Reinstall/update rclone? [y/N]: " UPDATE
|
||||||
|
if [[ "${UPDATE,,}" == "y" ]]; then
|
||||||
|
log " Updating rclone..."
|
||||||
|
curl -fsSL https://rclone.org/install.sh | sudo bash >> "$LOG" 2>&1
|
||||||
|
log " Updated: $(rclone --version | head -1)"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log " Installing rclone..."
|
||||||
|
curl -fsSL https://rclone.org/install.sh | sudo bash >> "$LOG" 2>&1
|
||||||
|
if ! command -v rclone &>/dev/null; then
|
||||||
|
err "rclone install failed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
log " Installed: $(rclone --version | head -1)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Step 2: Configure remote (if not already set up) ---
|
||||||
|
log ""
|
||||||
|
log "Step 2: Configuring rclone remote '$REMOTE_NAME'..."
|
||||||
|
|
||||||
|
if rclone listremotes | grep -q "^${REMOTE_NAME}:$"; then
|
||||||
|
log " Remote '$REMOTE_NAME' already exists."
|
||||||
|
read -rp " Reconfigure it? [y/N]: " RECONFIG
|
||||||
|
if [[ "${RECONFIG,,}" == "y" ]]; then
|
||||||
|
rclone config delete "$REMOTE_NAME"
|
||||||
|
log " Deleted old config. Starting fresh..."
|
||||||
|
else
|
||||||
|
log " Keeping existing config."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! rclone listremotes | grep -q "^${REMOTE_NAME}:$"; then
|
||||||
|
log ""
|
||||||
|
log " ┌─────────────────────────────────────────────────────────┐"
|
||||||
|
log " │ An AUTH URL will be printed below. │"
|
||||||
|
log " │ Copy it, open in ANY browser, sign in with: │"
|
||||||
|
log " │ samueljamesinc@snsnetworksolutions.net │"
|
||||||
|
log " │ Authorize rclone, then come back here. │"
|
||||||
|
log " └─────────────────────────────────────────────────────────┘"
|
||||||
|
log ""
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
# Use config create with no-browser so it prints the URL to terminal
|
||||||
|
rclone config create "$REMOTE_NAME" drive \
|
||||||
|
scope=drive \
|
||||||
|
config_is_local=false 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
# Verify it worked
|
||||||
|
if ! rclone listremotes | grep -q "^${REMOTE_NAME}:$"; then
|
||||||
|
err "Remote creation failed. Run 'rclone config' manually to debug."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
log " Remote '$REMOTE_NAME' configured successfully."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Step 3: Test connectivity ---
|
||||||
|
log ""
|
||||||
|
log "Step 3: Testing connectivity..."
|
||||||
|
|
||||||
|
if rclone lsd "${REMOTE_NAME}:" --max-depth 1 >> "$LOG" 2>&1; then
|
||||||
|
log " Connected to Google Drive. Top-level folders:"
|
||||||
|
rclone lsd "${REMOTE_NAME}:" --max-depth 1 | awk '{print " " $NF}' | head -10 | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
err "Cannot list Google Drive. Check OAuth token / network."
|
||||||
|
err "Try: rclone config reconnect ${REMOTE_NAME}:"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Step 4: Create mount point ---
|
||||||
|
log ""
|
||||||
|
log "Step 4: Setting up mount point at $MOUNT_POINT..."
|
||||||
|
|
||||||
|
mkdir -p "$MOUNT_POINT"
|
||||||
|
|
||||||
|
# Check if already mounted
|
||||||
|
if mountpoint -q "$MOUNT_POINT" 2>/dev/null; then
|
||||||
|
log " $MOUNT_POINT is already mounted."
|
||||||
|
read -rp " Unmount and remount? [y/N]: " REMOUNT
|
||||||
|
if [[ "${REMOUNT,,}" == "y" ]]; then
|
||||||
|
fusermount -u "$MOUNT_POINT" 2>/dev/null || fusermount3 -u "$MOUNT_POINT" 2>/dev/null || true
|
||||||
|
log " Unmounted."
|
||||||
|
else
|
||||||
|
log " Leaving existing mount. Skipping to service setup."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Step 5: Test mount (foreground, 5 seconds) ---
|
||||||
|
if ! mountpoint -q "$MOUNT_POINT" 2>/dev/null; then
|
||||||
|
log ""
|
||||||
|
log "Step 5: Test mounting (5 second check)..."
|
||||||
|
|
||||||
|
rclone mount "${REMOTE_NAME}:" "$MOUNT_POINT" \
|
||||||
|
--vfs-cache-mode full \
|
||||||
|
--vfs-cache-max-age 1h \
|
||||||
|
--dir-cache-time 30s \
|
||||||
|
--poll-interval 15s \
|
||||||
|
--allow-other \
|
||||||
|
--daemon
|
||||||
|
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
if mountpoint -q "$MOUNT_POINT" 2>/dev/null; then
|
||||||
|
log " Mount successful! Files visible at $MOUNT_POINT"
|
||||||
|
ls "$MOUNT_POINT" | head -5 | while read -r f; do log " $f"; done
|
||||||
|
# Unmount — the systemd service will handle persistent mount
|
||||||
|
fusermount -u "$MOUNT_POINT" 2>/dev/null || fusermount3 -u "$MOUNT_POINT" 2>/dev/null || true
|
||||||
|
log " Test unmounted. Setting up persistent service..."
|
||||||
|
else
|
||||||
|
err "Mount test failed. Check: 'rclone mount ${REMOTE_NAME}: $MOUNT_POINT --vfs-cache-mode full' manually."
|
||||||
|
err "Common fix: add 'user_allow_other' to /etc/fuse.conf"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Step 6: Create systemd user service for auto-mount ---
|
||||||
|
log ""
|
||||||
|
log "Step 6: Creating systemd user service..."
|
||||||
|
|
||||||
|
mkdir -p "$(dirname "$SERVICE_FILE")"
|
||||||
|
|
||||||
|
cat > "$SERVICE_FILE" << EOF
|
||||||
|
[Unit]
|
||||||
|
Description=Google Drive mount via rclone (${REMOTE_NAME})
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=notify
|
||||||
|
ExecStartPre=/bin/mkdir -p ${MOUNT_POINT}
|
||||||
|
ExecStart=/usr/bin/rclone mount ${REMOTE_NAME}: ${MOUNT_POINT} \\
|
||||||
|
--vfs-cache-mode full \\
|
||||||
|
--vfs-cache-max-age 1h \\
|
||||||
|
--dir-cache-time 30s \\
|
||||||
|
--poll-interval 15s \\
|
||||||
|
--allow-other \\
|
||||||
|
--log-file=%h/.local/share/rclone-gdrive.log \\
|
||||||
|
--log-level INFO
|
||||||
|
ExecStop=/bin/fusermount -u ${MOUNT_POINT}
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=10
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
log " Service file written: $SERVICE_FILE"
|
||||||
|
|
||||||
|
# Enable lingering so user services run without login
|
||||||
|
sudo loginctl enable-linger "$USER" 2>/dev/null || true
|
||||||
|
|
||||||
|
# Ensure user_allow_other is set in fuse.conf (needed for --allow-other)
|
||||||
|
if ! grep -q "^user_allow_other" /etc/fuse.conf 2>/dev/null; then
|
||||||
|
log " Enabling user_allow_other in /etc/fuse.conf..."
|
||||||
|
echo "user_allow_other" | sudo tee -a /etc/fuse.conf > /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Reload and start
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
systemctl --user enable gdrive-mount.service
|
||||||
|
systemctl --user start gdrive-mount.service
|
||||||
|
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
if mountpoint -q "$MOUNT_POINT" 2>/dev/null; then
|
||||||
|
log " Service running. Google Drive mounted at $MOUNT_POINT"
|
||||||
|
else
|
||||||
|
err " Service started but mount not detected. Check:"
|
||||||
|
err " systemctl --user status gdrive-mount.service"
|
||||||
|
err " cat ~/.local/share/rclone-gdrive.log"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Done ---
|
||||||
|
log ""
|
||||||
|
log "=== SETUP COMPLETE ==="
|
||||||
|
log ""
|
||||||
|
log " Mount point: $MOUNT_POINT"
|
||||||
|
log " Service: systemctl --user {status,stop,restart} gdrive-mount.service"
|
||||||
|
log " Logs: ~/.local/share/rclone-gdrive.log"
|
||||||
|
log " Persists: Yes (auto-starts on login, lingering enabled)"
|
||||||
|
log " Full log: $LOG"
|
||||||
|
log ""
|
||||||
|
log " Your Google Drive is at: ~/gdrive/"
|
||||||
|
log " SnS Hospitality folder: ~/gdrive/SnS Network Solutions/SnS Hospitality Group LLC/"
|
||||||
|
log ""
|
||||||
Loading…
Reference in New Issue
Block a user