@campfire-app/cli 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,50 @@
1
1
  {
2
2
  "name": "@campfire-app/cli",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "Campfire CLI — hooky Claude Code ho volají místo curl (brief, check-file, stop-summary).",
6
+ "bin": {
7
+ "campfire": "./dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "templates"
12
+ ],
13
+ "scripts": {
14
+ "build": "node scripts/build.mjs",
15
+ "typecheck": "tsc -p tsconfig.json --noEmit",
16
+ "dev": "tsx --conditions=development src/index.ts",
17
+ "prepublishOnly": "node scripts/build.mjs"
18
+ },
19
+ "dependencies": {
20
+ "commander": "^15.0.0"
21
+ },
22
+ "devDependencies": {
23
+ "esbuild": "^0.28.2",
24
+ "tsx": "^4.23.15",
25
+ "@campfire/shared": "workspace:*"
26
+ },
27
+ "license": "MIT",
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "git+https://github.com/TotallyNotApi/campfire.git",
31
+ "directory": "packages/cli"
32
+ },
33
+ "homepage": "https://github.com/TotallyNotApi/campfire#readme",
34
+ "bugs": {
35
+ "url": "https://github.com/TotallyNotApi/campfire/issues"
36
+ },
37
+ "keywords": [
38
+ "claude-code",
39
+ "mcp",
40
+ "agents",
41
+ "campfire",
42
+ "hooks"
43
+ ],
44
+ "engines": {
45
+ "node": ">=22"
46
+ },
47
+ "publishConfig": {
48
+ "access": "public"
49
+ }
50
+ }
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: domain
3
+ description: Onkologická doména — TNM, ICD-O-3, MKN-10, morfologie, biomarkery, pole REDCapu. Použij, když potřebuješ vysvětlit nebo validovat doménový pojem, místo abys ho hádal.
4
+ ---
5
+
6
+ # Doménový agent
7
+
8
+ Tvoje jediná znalostní báze je `docs/hub/domain.md` v tomhle repu. Přečti si ho
9
+ vždy na začátku, než odpovíš.
10
+
11
+ ## Pravidla
12
+
13
+ 1. **Odpovídej jen to, co stojí v `docs/hub/domain.md`.** Když tam odpověď není,
14
+ řekni to výslovně a zavolej `hub_ask(tag="domain")`. Odpověď dá medik nebo
15
+ mentor a při příštím startu ji budeš mít.
16
+
17
+ 2. **Nikdy si nedomýšlej kódy ani jména polí.** Konkrétní kód ICD-O, hodnotu
18
+ TNM nebo jméno pole v REDCapu buď víš z `domain.md`, nebo ne. Vymyšlený kód
19
+ projde validací a rozbije export.
20
+
21
+ 3. **U každé odpovědi uveď, odkud je** — sekce `domain.md`, nebo „odpověď
22
+ mentora z <datum>“.
23
+
24
+ 4. **Rozlišuj klinickou a patologickou klasifikaci.** `cT2` a `pT2` nejsou
25
+ totéž a v extrakci se nesmí slít.
26
+
27
+ 5. **Stadium neodvozuj z TNM, dokud nemáš tabulku pro tu konkrétní diagnózu.**
28
+ Pravidla se mezi diagnózami liší.
29
+
30
+ ## Co nedělat
31
+
32
+ Nepiš kód a needituj soubory. Jsi slovník, ne vrstva.
@@ -0,0 +1,39 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "hooks": [
6
+ {
7
+ "type": "command",
8
+ "command": "campfire brief",
9
+ "timeout": 10,
10
+ "statusMessage": "Campfire brief"
11
+ }
12
+ ]
13
+ }
14
+ ],
15
+ "PreToolUse": [
16
+ {
17
+ "matcher": "Edit|Write|MultiEdit",
18
+ "hooks": [
19
+ {
20
+ "type": "command",
21
+ "command": "campfire check-file",
22
+ "timeout": 5
23
+ }
24
+ ]
25
+ }
26
+ ],
27
+ "Stop": [
28
+ {
29
+ "hooks": [
30
+ {
31
+ "type": "command",
32
+ "command": "campfire stop-summary",
33
+ "timeout": 15
34
+ }
35
+ ]
36
+ }
37
+ ]
38
+ }
39
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "mcpServers": {
3
+ "campfire": {
4
+ "type": "http",
5
+ "url": "https://campfire.fly.dev/mcp",
6
+ "headers": {
7
+ "Authorization": "Bearer ${CAMPFIRE_TOKEN}"
8
+ }
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,56 @@
1
+ # Projekt
2
+
3
+ @docs/hub/zadani.md
4
+ @docs/hub/architecture.md
5
+ @docs/hub/domain.md
6
+ @docs/hub/conventions.md
7
+
8
+ ## Stack a příkazy
9
+
10
+ <!-- Doplň v pátek dopoledne, až bude jasné, co stavíme. -->
11
+
12
+ | Co | Příkaz |
13
+ | --- | --- |
14
+ | Testy | `TODO` |
15
+ | Lint | `TODO` |
16
+ | Dev server | `TODO` |
17
+
18
+ ## Campfire
19
+
20
+ Tenhle repo sdílí čtyři agenti. Stav drží Campfire — MCP server, který máš
21
+ připojený jako `campfire`. Hooky ti samy stáhnou brief na začátku session a
22
+ vyžádají si status na konci, takže na hub nemusíš myslet. Čtyři pravidla ale
23
+ hooky nenahradí:
24
+
25
+ 1. **`hub_claim` jen na to, co je sdílené — ne na svou vrstvu.** `contracts/`,
26
+ konfiguraci, `scripts/`. Vrstvy jsou disjunktní, takže claim na vlastní
27
+ modul je obřad bez odměny; kolize nastane přesně ve sdílených souborech,
28
+ kde dva lidi legitimně potřebují sáhnout. Claim je cesta nebo glob, např.
29
+ `contracts/**` nebo `scripts/synth.py`. Když vrátí konflikt, soubor právě
30
+ drží někdo jiný — napiš mu `hub_post` nebo si vyber jinou práci. Na konci
31
+ `hub_release`.
32
+
33
+ **Cizí vrstvu needituj na vlastní pěst**, ani když na ní není claim —
34
+ claimy na vrstvy záměrně nejsou, takže tě hook nezastaví. Potřebuješ-li
35
+ tam změnu, napiš `hub_post` vlastníkovi.
36
+
37
+ **Co vrací cizí vrstva, si přečti v `contracts/`, neptej se kolegy.** Když
38
+ to tam není, je to chyba kontraktu — ohlas ji přes `hub_contract_change`.
39
+
40
+ 2. **Pokud si nejsi jistý doménovým pojmem, zavolej `hub_ask(tag="domain")` a
41
+ pokračuj s explicitní TODO poznámkou; nehádej.** TNM, ICD-O, morfologie a
42
+ pole REDCapu jsou věci, kde je odhad horší než prázdné místo. Odpověď od
43
+ medika nebo mentora ti přijde v dalším briefu i s hotovým odstavcem do
44
+ `docs/hub/domain.md`.
45
+
46
+ 3. **Breaking změnu kontraktu nikdy necommituj bez `hub_contract_change`.**
47
+ Všechno v `contracts/` je rozhraní mezi čtyřmi vrstvami. Ohlas diff a
48
+ `breaking: true/false` dřív, než to půjde do mainu; breaking změnu
49
+ integrátor nemergne, dokud ji ostatní neodkývají.
50
+
51
+ 4. **Do hubu nikdy neposílej obsah pacientských dokumentů, jen cesty, schémata
52
+ a syntetické příklady.** Server payload nad 4 kB a cokoliv, co vypadá jako
53
+ rodné číslo, odmítne — ale spoléhat se na to není plán.
54
+
55
+ Rozhodnutí, která ovlivní ostatní, zapiš přes `hub_decide`. Server ti vrátí
56
+ číslo ADR, cestu a hotový markdown; soubor commitneš ty.
@@ -0,0 +1,110 @@
1
+ # Campfire v tomhle repu
2
+
3
+ Tenhle repo sdílí několik agentů Claude Code. Jejich stav drží Campfire — malý
4
+ MCP server se dashboardem. Co tady leží:
5
+
6
+ | Soubor | K čemu je |
7
+ | --- | --- |
8
+ | `CLAUDE.md` | pravidla pro agenty; importuje `docs/hub/*.md` |
9
+ | `.mcp.json` | adresa Campfire serveru; klíč jde z prostředí, ne odtud |
10
+ | `.claude/settings.json` | tři hooky — brief na startu, kontrola claims před editací, shrnutí na konci |
11
+ | `.claude/agents/domain.md` | doménový subagent nad `docs/hub/domain.md` |
12
+ | `docs/hub/` | statická znalost: architektura, doména, konvence, ADR |
13
+ | `contracts/` | rozhraní mezi vrstvami; mění se jen přes `hub_contract_change` |
14
+
15
+ ## Nejrychlejší cesta (jeden příkaz)
16
+
17
+ Claude Code umí přidat MCP server sám. V dashboardu Campfire si v **Nastavení →
18
+ Připojit agenta** vygeneruj klíč a zkopíruj hotový příkaz:
19
+
20
+ ```bash
21
+ claude mcp add --transport http campfire https://campfire.fly.dev/mcp \
22
+ --header "Authorization: Bearer cf_..."
23
+ ```
24
+
25
+ Spusť ho v repu, na kterém budeš pracovat. Pak v Claude Code napiš `/mcp` —
26
+ `campfire` musí být `connected`. Hotovo: devět toolů je k dispozici.
27
+
28
+ Co tím **nezískáš**: hooky. Brief se ti sám nestáhne na startu session a nic ti
29
+ nepohlídá editaci cizího modulu. Na to je plné nastavení níže. Pro rychlé
30
+ vyzkoušení nebo pro pátého člověka, který se přidá na hodinu, to ale stačí.
31
+
32
+ ## Plné nastavení pro tým (5 minut)
33
+
34
+ **1. Nainstaluj CLI globálně.**
35
+
36
+ ```bash
37
+ pnpm add -g @campfire-app/cli
38
+ ```
39
+
40
+ Globální instalace, ne `npx`. Hook `PreToolUse` běží před **každou** editací
41
+ souboru a `npx` by u každé řešil resolving balíčku; spec na tenhle hook dává
42
+ dvě sekundy a žádné síťové volání. Pokud globální instalaci nechceš, přepiš
43
+ `command` v `.claude/settings.json` na `npx -y @campfire-app/cli …` a počítej s
44
+ latencí.
45
+
46
+ **2. Vygeneruj si klíč.** V dashboardu Campfire otevři svůj projekt → API klíče
47
+ → „Vygenerovat“. Klíč se zobrazí **jednou**.
48
+
49
+ **3. Dej URL a klíč do prostředí.** Do `~/.zshrc` nebo `~/.bashrc`:
50
+
51
+ ```bash
52
+ export CAMPFIRE_URL=https://campfire.fly.dev
53
+ export CAMPFIRE_TOKEN=cf_...
54
+ ```
55
+
56
+ Klíč patří do prostředí, ne do repa — proto `.mcp.json` obsahuje jen
57
+ `${CAMPFIRE_TOKEN}` a repo zůstává sdílitelné.
58
+
59
+ **4. Ověř.**
60
+
61
+ ```bash
62
+ campfire whoami
63
+ # OK: jsi Petr v projektu MDT asistent.
64
+ ```
65
+
66
+ **5. Spusť Claude Code.** Hook `SessionStart` ti sám stáhne brief.
67
+
68
+ ## Když expanze `${CAMPFIRE_TOKEN}` nefunguje
69
+
70
+ Některé verze Claude Code neexpandují proměnné v `.mcp.json`. Poznáš to tak, že
71
+ MCP server `campfire` se nepřipojí a `campfire whoami` přitom funguje. Řešení:
72
+
73
+ ```bash
74
+ campfire init --url "$CAMPFIRE_URL" --token "$CAMPFIRE_TOKEN" --inline-token --force
75
+ ```
76
+
77
+ Klíč se zapíše přímo do `.mcp.json` a ten se přidá do `.gitignore`. Necommituj ho.
78
+
79
+ ## Co hooky dělají
80
+
81
+ | Hook | Kdy | Co |
82
+ | --- | --- | --- |
83
+ | `SessionStart` | start session | `campfire brief` — digest do kontextu a obnovení `.campfire/claims.json` |
84
+ | `PreToolUse` na `Edit\|Write\|MultiEdit` | před každou editací | `campfire check-file` — porovná cestu s lokální cache; cizí claim zablokuje. Bez sítě. |
85
+ | `Stop` | konec odpovědi | `campfire stop-summary` — vyzve k `hub_status`, a když se měnilo `contracts/` bez ohlášení, připomene `hub_contract_change` |
86
+
87
+ Všechny tři degradují mlčky: když je hub nedostupný, session funguje dál.
88
+
89
+ ## Devět toolů
90
+
91
+ | Tool | Kdy ho zavolat |
92
+ | --- | --- |
93
+ | `hub_brief` | automaticky hookem; ručně kdykoliv chceš vědět, co je nového |
94
+ | `hub_status` | po dokončení kroku |
95
+ | `hub_claim` / `hub_release` | před a po práci na **sdíleném** souboru (`contracts/`, konfigurace, `scripts/`) — ne na své vrstvě |
96
+ | `hub_post` | zpráva kolegovi, nebo `kind="ack"` u breaking změny |
97
+ | `hub_contract_change` | před commitem čehokoliv v `contracts/` |
98
+ | `hub_decide` | rozhodnutí, které ovlivní ostatní |
99
+ | `hub_ask` | doménová otázka, místo hádání |
100
+ | `hub_charter` | zadání projektu: cíl, demo, „hotovo, když“, mimo rozsah |
101
+
102
+ ## Řešení problémů
103
+
104
+ | Příznak | Co s tím |
105
+ | --- | --- |
106
+ | brief se nezobrazil | `campfire brief` ručně — vypíše, co mu chybí |
107
+ | „Campfire nedostupný“ | zkontroluj `CAMPFIRE_URL`; hub možná běží lokálně u leada přes Tailscale |
108
+ | „Campfire odmítl klíč“ | klíč byl zrušený nebo patří jinému projektu; vygeneruj nový |
109
+ | hook blokuje editaci sdíleného souboru | to je záměr; drží ho někdo jiný — napiš mu `hub_post`, nebo si vyber jinou práci |
110
+ | hook blokuje furt dokola | `campfire claims-sync`; cache starší 15 minut se ignoruje sama |
File without changes
@@ -0,0 +1,31 @@
1
+ # Architektura
2
+
3
+ <!-- Vyplní lead v pátek dopoledne, 9:30–11:00, ještě před prvním řádkem kódu. -->
4
+
5
+ ## Vrstvy pipeline
6
+
7
+ | Vrstva | Vlastník | Vstup → výstup | Moduly |
8
+ | --- | --- | --- | --- |
9
+ | 1. Ingest | TODO | dokumenty → `Document` | `ingest/**` |
10
+ | 2. Extrakce | TODO | `Document` → `Finding`, `LabValue`, `TreatmentEvent` | `extraction/**`, `prompts/**` |
11
+ | 3. Doména | TODO | entity → časová osa, trendy, validace | `domain/**`, `api/**` |
12
+ | 4. UI | TODO | API → pohled lékaře | `web/**` |
13
+ | Integrace | integrátor | větve → main, e2e | `tests/e2e/**`, `contracts/**` (jen review) |
14
+
15
+ > Moduly níž jsou **vlastnictví, ne claimy.** Svou vrstvu neclaimuj — nikdo
16
+ > jiný do ní nesahá, takže by to byl obřad bez odměny. `hub_claim` je na to,
17
+ > co je sdílené: `contracts/`, konfigurace, `scripts/`.
18
+
19
+ ## Jak se vrstvy potkávají
20
+
21
+ Jen přes `contracts/`. Nic jiného není sdílené rozhraní. Kontrakty píšeme
22
+ společně na začátku a od té chvíle je mění jen `hub_contract_change`.
23
+
24
+ ## Hotovo, když
25
+
26
+ | Vrstva | Kritérium |
27
+ | --- | --- |
28
+ | 1 | TODO |
29
+ | 2 | TODO |
30
+ | 3 | TODO |
31
+ | 4 | TODO |
@@ -0,0 +1,33 @@
1
+ # Konvence
2
+
3
+ <!-- Dohodnout před hackathonem, ne během. -->
4
+
5
+ ## Commity
6
+
7
+ `<typ>(<oblast>): <co se změnilo>` — např. `feat(ingest): parser PDF přes pdfplumber`.
8
+ Typy: `feat`, `fix`, `refactor`, `test`, `docs`, `chore`.
9
+
10
+ ## Pojmenování
11
+
12
+ - Soubory a moduly: `snake_case` v Pythonu, `camelCase` v TypeScriptu.
13
+ - Typy z `contracts/` se nikde nekopírují, vždy importují.
14
+ - Jedna vrstva = jeden adresář. Nic nepřesahuje do cizího.
15
+
16
+ ## Testy
17
+
18
+ - Každý modul má alespoň jeden test na syntetických datech ze `scripts/synth.py`.
19
+ - E2E běží na `main` a musí projít před demem. Integrátor je hlídá.
20
+ - Test, který potřebuje reálná data, nepatří do repa.
21
+
22
+ ## Lint a formát
23
+
24
+ | Jazyk | Nástroj |
25
+ | --- | --- |
26
+ | Python | `ruff` (lint + format) |
27
+ | TypeScript | `eslint` + `prettier` |
28
+
29
+ ## Co se nikdy nedostane do repa
30
+
31
+ - Pacientská data, ani anonymizovaná. Zůstávají v lokálním sandboxu toho, kdo
32
+ dělá extrakci.
33
+ - API klíče. `.campfire/` a `.env.local` jsou v `.gitignore`.
File without changes
@@ -0,0 +1,134 @@
1
+ # Doménový slovník
2
+
3
+ Onkologická doména pro tenhle projekt. Prázdná místa vyplňuje medik v týmu nebo
4
+ mentor — buď přímo, nebo přes odpovědi na `hub_ask(tag="domain")`, které se sem
5
+ připisují do sekce [Odpovědi mentorů](#odpovědi-mentorů).
6
+
7
+ **Pravidlo:** když tady něco není, zavolej `hub_ask(tag="domain")` a pokračuj s
8
+ TODO poznámkou. Nehádej.
9
+
10
+ ---
11
+
12
+ ## TNM (8. vydání)
13
+
14
+ Staging systém UICC/AJCC. Tři složky plus prefixy a grading.
15
+
16
+ | Složka | Co popisuje | Typické hodnoty |
17
+ | --- | --- | --- |
18
+ | **T** | rozsah primárního tumoru | `Tis`, `T0`, `T1`–`T4` (s podstupni `T1a`, `T1b`, …), `TX` = nelze určit |
19
+ | **N** | regionální lymfatické uzliny | `N0`, `N1`–`N3` (s podstupni), `NX` |
20
+ | **M** | vzdálené metastázy | `M0`, `M1` (s lokalizací `M1a`–`M1c`); `MX` se v 8. vydání už nepoužívá |
21
+
22
+ ### Prefixy
23
+
24
+ | Prefix | Význam |
25
+ | --- | --- |
26
+ | `c` | klinická klasifikace (před léčbou, z vyšetření) |
27
+ | `p` | patologická klasifikace (z resekátu) |
28
+ | `yc` / `yp` | po neoadjuvantní léčbě |
29
+ | `r` | recidiva |
30
+ | `a` | z autopsie |
31
+
32
+ Příklad: `pT2 pN1 M0` = patologicky potvrzený T2, jedna skupina pozitivních
33
+ uzlin, bez vzdálených metastáz.
34
+
35
+ ### Grading
36
+
37
+ | Hodnota | Význam |
38
+ | --- | --- |
39
+ | `G1` | dobře diferencovaný |
40
+ | `G2` | středně diferencovaný |
41
+ | `G3` | špatně diferencovaný |
42
+ | `G4` | nediferencovaný |
43
+ | `GX` | nelze určit |
44
+
45
+ ### Stadium
46
+
47
+ Stadium (`0`, `I`–`IV`, s podstupni `IA`, `IIB`, …) se z TNM odvozuje podle
48
+ tabulek specifických pro každou diagnózu. **Není to jedna univerzální tabulka** —
49
+ pravidla pro kolorektální karcinom a pro karcinom prsu se liší.
50
+
51
+ > TODO: doplnit tabulku stadia pro diagnózy, které náš projekt řeší.
52
+
53
+ ---
54
+
55
+ ## ICD-O-3
56
+
57
+ Mezinárodní klasifikace nemocí pro onkologii. Nález má dvě nezávislé osi:
58
+
59
+ | Osa | Formát | Příklad |
60
+ | --- | --- | --- |
61
+ | **Topografie** (lokalizace) | `C__._` | `C50.4` = horní vnitřní kvadrant prsu |
62
+ | **Morfologie** (histologie) | `M____/_` | `M8140/3` = adenokarcinom, maligní |
63
+
64
+ Poslední číslice morfologie je **chování**:
65
+
66
+ | Kód | Chování |
67
+ | --- | --- |
68
+ | `/0` | benigní |
69
+ | `/1` | nejisté / hraniční |
70
+ | `/2` | in situ |
71
+ | `/3` | maligní, primární |
72
+ | `/6` | maligní, metastáza |
73
+ | `/9` | maligní, nejisté zda primární nebo metastáza |
74
+
75
+ ---
76
+
77
+ ## MKN-10, kapitola novotvarů
78
+
79
+ | Rozsah | Co pokrývá |
80
+ | --- | --- |
81
+ | `C00`–`C97` | zhoubné novotvary |
82
+ | `C00`–`C14` | dutina ústní a hltan |
83
+ | `C15`–`C26` | trávicí orgány |
84
+ | `C30`–`C39` | dýchací soustava |
85
+ | `C50` | prs |
86
+ | `C51`–`C58` | ženské pohlavní orgány |
87
+ | `C60`–`C63` | mužské pohlavní orgány |
88
+ | `C64`–`C68` | močová soustava |
89
+ | `C81`–`C96` | lymfatická a krvetvorná tkáň |
90
+ | `D00`–`D09` | in situ |
91
+ | `D37`–`D48` | novotvary nejistého chování |
92
+
93
+ ---
94
+
95
+ ## Biomarkery
96
+
97
+ > TODO: doplnit podle vybrané výzvy. Níže jsou ty, které se objevují nejčastěji.
98
+
99
+ | Marker | Kde | Hodnoty |
100
+ | --- | --- | --- |
101
+ | ER / PR | prs | `%` pozitivních jader, nebo Allred skóre |
102
+ | HER2 | prs, žaludek | IHC `0`/`1+`/`2+`/`3+`; při `2+` ještě ISH |
103
+ | Ki-67 | prs a další | `%` |
104
+ | MSI / MMR | kolorektum, endometrium | `MSS` / `MSI-L` / `MSI-H`; MMR proteiny MLH1, MSH2, MSH6, PMS2 |
105
+ | EGFR, ALK, ROS1 | plíce | mutace / fúze, s uvedením exonu |
106
+ | BRAF | melanom, kolorektum | např. `V600E` |
107
+ | PD-L1 | plíce a další | TPS / CPS v `%` |
108
+ | BRCA1/2 | prs, ovarium | germinální / somatická, s variantou |
109
+
110
+ ---
111
+
112
+ ## Laboratorní hodnoty
113
+
114
+ Každá hodnota potřebuje **číslo, jednotku a referenční rozmezí** laboratoře,
115
+ která ji vydala. Jednotky se mezi laboratořemi liší; bez jednotky je číslo
116
+ nepoužitelné.
117
+
118
+ > TODO: doplnit, které analyty projekt sleduje a v jakých jednotkách.
119
+
120
+ ---
121
+
122
+ ## Pole REDCap
123
+
124
+ > TODO: doplnit přesná jména polí z data dictionary, až ho budeme mít. Hádat
125
+ > jména polí nemá smysl — REDCap je odmítne.
126
+
127
+ ---
128
+
129
+ ## Odpovědi mentorů
130
+
131
+ Sem se připisují odpovědi na `hub_ask(tag="domain")`. Server vrátí hotový
132
+ odstavec v briefu toho, kdo se ptal; ten ho sem připojí a commitne.
133
+
134
+ <!-- campfire:answers -->
@@ -0,0 +1,7 @@
1
+ # Zadání projektu
2
+
3
+ > Tenhle soubor generuje `hub_charter`. Neupravuj ho ručně — při příštím zápisu
4
+ > se přepíše. Zadání se mění tak, že o tom řekneš svému agentovi, nebo ho
5
+ > upravíš v Campfire v pohledu **Zadání**.
6
+
7
+ Zadání ještě nikdo nenapsal.
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.