Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .agents/noesis-first.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Noesis-First Authoring Rule

When working in this repository, treat `doc/` as the canonical Noesis source
and `dist/` as derived material.

Rules:

- Write canonical concepts in English.
- Add or refine Noesis entries before creating presentations, publications,
whitepapers, mockups, or other `dist/` artifacts.
- Do not introduce new canonical concepts directly in `dist/`.
- Keep Noesis declarative. It may define problems, desired outcomes,
mechanics, capabilities, language, and constraints.
- Do not put implementation decisions, product roadmap choices, concrete
architecture decisions, or vendor selections into Noesis.
- If an idea implies both a problem and a solution, document the problem first,
then derive mechanics or capabilities, and only afterwards create downstream
material outside Noesis.
- Blockchain, marketplace, oracle, provider, token, or storage technologies are
implementation candidates unless the user explicitly asks for downstream
`dist/` material.
530 changes: 530 additions & 0 deletions dist/mockups/ProtopipeCockpit.html

Large diffs are not rendered by default.

108 changes: 108 additions & 0 deletions dist/mockups/strategy-detail.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Protopipe Strategy Detail</title>
<style>
:root{
--bg:#081a17;--panel:#102b27;--text:#e9f3f0;--muted:#8fa8a1;
--line:rgba(255,255,255,.075);--red:#f7436e;--warn:#f1c98f;
}
*{box-sizing:border-box}
body{
margin:0;color:var(--text);font-family:Inter,"Helvetica Neue",Arial,sans-serif;
background:radial-gradient(circle at 18% 10%,rgba(222,8,61,.16),transparent 28%),linear-gradient(135deg,#06120f,#081a17 45%,#0b1f1b);
}
.app{max-width:1180px;margin:0 auto;padding:24px}
.topbar,.panel{
border:1px solid var(--line);background:linear-gradient(180deg,rgba(16,43,39,.92),rgba(8,26,23,.88));
border-radius:22px;box-shadow:0 16px 50px rgba(0,0,0,.22);
}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:16px 20px}
.brand{font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.brand span{display:block;margin-top:3px;color:var(--muted);font-size:11px;letter-spacing:normal;text-transform:none}
a{color:var(--text);text-decoration:none}
.back{font-size:12px;color:var(--muted)}
.back:hover{color:var(--red)}
.hero{padding:42px 4px 24px}
.eyebrow{color:var(--warn);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
h1{margin:8px 0;font-size:42px;letter-spacing:-.04em}
.meta{color:var(--muted);font-size:13px}
.grid{display:grid;grid-template-columns:1.4fr .8fr;gap:16px}
.panel{padding:20px}
.panel h2{margin:0 0 14px;font-size:17px}
.statement{font-size:22px;line-height:1.4}
.list{display:grid;gap:10px}
.row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:13px}
.row:last-child{border:0}
.row strong{color:var(--text)}
.experiment{padding:13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03)}
.experiment + .experiment{margin-top:9px}
.experiment b{display:block;margin-bottom:5px}
.experiment span{color:var(--muted);font-size:12px}
@media(max-width:800px){.grid{grid-template-columns:1fr}.topbar{align-items:flex-start;gap:15px}.topbar{flex-direction:column}}
</style>
</head>
<body>
<div class="app">
<nav class="topbar">
<div class="brand">Protopipe<span>Product Owner Strategy View</span></div>
<a class="back" href="ProtopipeCockpit.html">← Back to Executive Cockpit</a>
</nav>

<header class="hero">
<div class="eyebrow">Active Strategy</div>
<h1 id="strategyName">Enterprise Expansion</h1>
<div class="meta" id="strategyMeta">Q2–Q4 2026 · Owner CEO / CPO</div>
</header>

<main class="grid">
<section class="panel">
<h2>Strategic Hypothesis</h2>
<div class="statement" id="hypothesis">The partner network can scale without proportional increases in onboarding costs.</div>
</section>
<section class="panel">
<h2>Operating Position</h2>
<div class="list">
<div class="row"><span>Budget</span><strong id="budget">CHF 5.2M</strong></div>
<div class="row"><span>Capacity</span><strong id="capacity">30%</strong></div>
<div class="row"><span>Priority</span><strong id="priority">Critical</strong></div>
</div>
</section>
<section class="panel">
<h2>Current Experiments</h2>
<div id="experiments"></div>
</section>
<section class="panel">
<h2>Decision Context</h2>
<div class="list">
<div class="row"><span>Primary friction</span><strong id="friction">Sales cycle exceeds target</strong></div>
<div class="row"><span>Critical risk</span><strong id="risk">Competitive response</strong></div>
</div>
</section>
</main>
</div>
<script>
const strategies={
"enterprise-expansion":{name:"Enterprise Expansion",meta:"Q2–Q4 2026 · Owner CEO / CPO",budget:"CHF 5.2M",capacity:"30%",priority:"Critical",hypothesis:"The partner network can scale without proportional increases in onboarding costs.",friction:"Sales cycle exceeds the target range by 21 days",risk:"Aggressive response from an established competitor",experiments:[["Partner pilot","Testing scalable partner onboarding"],["Budget shift","Moving spend toward partner enablement"]]},
"profitability-first":{name:"Profitability First",meta:"Q3 2026–Q1 2027 · Owner CFO",budget:"CHF 3.7M",capacity:"24%",priority:"High",hypothesis:"Customers will accept reduced packaging without a churn spike.",friction:"Cloud costs are rising faster than margin improvements",risk:"Underinvestment reduces future growth options",experiments:[["Cost review","Validating sustainable infrastructure savings"]]},
"ai-first-productization":{name:"AI-First Productization",meta:"Q2–Q4 2026 · Owner CTO / CPO",budget:"CHF 4.4M",capacity:"22%",priority:"Critical",hypothesis:"AI capabilities deliver decision quality customers are willing to pay for.",friction:"Inference costs create margin uncertainty",risk:"Regulatory requirements increase audit effort",experiments:[["AI pilot","Testing product value with selected customers"],["Pricing test","Validating willingness to pay"]]},
"market-resilience":{name:"Market Resilience",meta:"Q3 2026 · Owner CEO / CFO",budget:"CHF 2.1M",capacity:"10%",priority:"Medium",hypothesis:"Existing customers stabilize revenue under market pressure.",friction:"Demand indicators diverge across regions",risk:"Interest-rate or regulatory changes reduce investment",experiments:[["Market signal","Testing regional demand resilience"]]},
"operational-excellence":{name:"Operational Excellence",meta:"Q2–Q3 2026 · Owner COO / CTO",budget:"CHF 2.8M",capacity:"14%",priority:"High",hypothesis:"Process standardization reduces friction without sacrificing autonomy.",friction:"Automation reduces effort more slowly than expected",risk:"Excessive centralization creates coordination costs",experiments:[["Cloud response","Reducing infrastructure cost exposure"],["Ops change","Testing a new operating model"]]}
};
const slug=new URLSearchParams(location.search).get("strategy")||"enterprise-expansion";
const strategy=strategies[slug]||strategies["enterprise-expansion"];
document.title=`${strategy.name} · Protopipe`;
strategyName.textContent=strategy.name;
strategyMeta.textContent=strategy.meta;
hypothesis.textContent=strategy.hypothesis;
budget.textContent=strategy.budget;
capacity.textContent=strategy.capacity;
priority.textContent=strategy.priority;
friction.textContent=strategy.friction;
risk.textContent=strategy.risk;
experiments.innerHTML=strategy.experiments.map(([name,description])=>`<div class="experiment"><b>${name}</b><span>${description}</span></div>`).join("");
</script>
</body>
</html>
7 changes: 7 additions & 0 deletions dist/presentations/protopipe-enterprise-pitch/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/.quarto/
/_site/
/.jupyter_cache/
/assets/mockups/ProtopipeCockpit.html


**/*.quarto_ipynb
73 changes: 73 additions & 0 deletions dist/presentations/protopipe-enterprise-pitch/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Protopipe Enterprise Pitch Deck

**Augmented Product Development Platform**

This directory is a non-canonical presentation project derived from Noesis.
It is intended for Quarto, Reveal.js, VS Code, GitHub, and GitHub Pages.

The deck is structured like a software project:

- `presentation/` contains the Quarto entry point and chapter files.
- `theme/` contains the Reveal.js theme and reusable SCSS modules.
- `assets/` contains images, logos, and font notes.
- `diagrams/` contains source diagrams and generated exports.
- `scripts/` contains local rendering helpers.
- `docs/` contains authoring, deployment, and extension guidance.

Noesis remains the canonical reasoning space. This deck may interpret,
sequence, and package Protopipe for an audience, but it must not introduce
canonical facts without moving them back into `doc/`.

Narrative scope:

Golden Circle / Purpose -> Strategy -> Product -> Architecture -> Development
-> Monitoring and Observations -> Learning -> Decision

## Quick Start

```bash
cd dist/presentations/protopipe-enterprise-pitch
quarto preview presentation/index.qmd
```

Render static output:

```bash
./scripts/render.sh
```

The rendered site is written to `_site/`.

Export a color PDF through Reveal.js and Chromium:

```bash
./scripts/export-pdf.sh
```

The PDF is written to `_site/protopipe-enterprise-pitch.pdf`. Print styles
preserve slide colors and place transparent SVG diagrams on a dark neutral
surface.

Manual fallback:

1. Start `./scripts/preview.sh`.
2. Append `?print-pdf` to the presentation URL.
3. Print from Chromium and enable **Background graphics**.

Render PlantUML diagrams with Podman:

```bash
./scripts/render-plantuml.sh
```

Or:

```bash
podman compose run --rm plantuml
```

The render script defaults to Podman. To use Docker explicitly:

```bash
CONTAINER_RUNTIME=docker ./scripts/render-plantuml.sh
```
51 changes: 51 additions & 0 deletions dist/presentations/protopipe-enterprise-pitch/_quarto.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
project:
type: website
output-dir: _site
pre-render:
- scripts/sync-mockups.sh
render:
- presentation/index.qmd

website:
title: "Protopipe"
site-url: "https://example.com/protopipe"
repo-url: "https://github.com/protopipe/noesis"
repo-actions: [source, issue]

format:
revealjs:
theme:
- default
- theme/protopipe.scss
slide-number: c/t
chalkboard: false
controls: true
controls-layout: edges
controls-tutorial: false
hash: true
history: true
progress: true
overview: true
center: false
transition: fade
background-transition: fade
width: 1600
height: 900
margin: 0.06
min-scale: 0.2
max-scale: 2.0
navigation-mode: linear
incremental: false
code-copy: true
code-overflow: wrap
footer: "Protopipe | Augmented Product Development Platform"
title-slide-attributes:
data-background-color: "#081a17"
data-state: "title-slide"

execute:
freeze: auto

resources:
- assets/
- diagrams/generated/
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading