Spec: Private Harness Intelligence Wiki App
Spec: Private Harness Intelligence Wiki App
User Input
Deliver the full M2 Private Harness Wiki milestone for Harness Intelligence in /Users/stefan/Desktop/repos/wearedevpunks-cli until IP-99, IP-100, and every M2 child issue are specified, planned, implemented, reviewed, validated, documented, and either deployed to Vercel or blocked by a concrete deployment/access reason.
IP-99 owns the private Fumadocs wiki app foundation. Child requirements:
- IP-117:
apps/wikican serve the internal wiki locally, owns source content, and is not treated as a public docs portal. - IP-118: existing CLI concepts and flows remain available, wiki index/log/domain conventions survive, and CLI mechanics stay separate from harness methodology.
Context
Harness Intelligence is the Devpunks AI engineering operating system. M2 needs a private internal knowledge product, not a public docs site and not a loose docs/ folder. apps/wiki already exists as a Next/Fumadocs app; this spec closes the app-foundation epic by making the source-owner contract explicit, preserving the existing CLI wiki domain, and proving the app can build, typecheck, serve, and be prepared for Vercel as a monorepo app.
The affected readers are Devpunks operators, engineers, and internal agents that use the wiki as source knowledge. The affected maintainers are repo contributors updating specs, domain pages, routed Fumadocs pages, and deployment settings.
Non-Goals
- Public landing narrative or
apps/webcopy. - Authenticated CLI baseline distribution.
- Backoffice telemetry or project usage reporting.
- A separate
content/harnessor external canonical source layer. - Rewriting CLI mechanics as harness methodology.
- Full app-level authentication if Vercel/private deployment access is the available privacy boundary for M2.
Acceptance Criteria
apps/wikiis the only canonical wiki source owner, with domain source indexes underapps/wiki/content/docs/project/domainsand supporting source/bookkeeping underapps/wiki/specs,apps/wiki/raw,apps/wiki/index.md, andapps/wiki/log.md.- Fumadocs routed pages remain a projection under
apps/wiki/content/docs, not a duplicate canonical source tree. /docs/harness,/docs/project, and/docs/clirender from the wiki app.- Existing CLI domain concepts and flows remain listed in
apps/wiki/content/docs/project/domainssource indexes and routed navigation. - The CLI domain stays focused on
punks/dpmechanics, scaffold behavior, contracts, and validation. - The Harness domain is linked as methodology, but the IP-100 methodology inventory remains separate from IP-99 app-foundation scope.
- The wiki app identifies itself as the private Harness Intelligence wiki, not default Fumadocs sample content.
- Wiki package typecheck participates in the repo-standard
check-typesTurborepo task. - Turborepo build outputs are compatible with Next/Vercel caching by preserving
.next/**while excluding.next/cache/**. - Local validation passes for
bun run check,bun run check-types, andbun run build --filter=@punks/wiki. - Local browser smoke proves
/docs,/docs/harness,/docs/project, and/docs/clirender. - Vercel readiness is verified with current Vercel guidance, or deployment is blocked by exact missing access/config evidence.
Constraints
apps/wikiis private/internal. Do not market it as a public documentation site.- Root scripts must delegate through Turborepo package tasks.
- Portless/stable local subdomains are the baseline for documented origins.
- Specs describe real epic delivery work; grill source may seed domain pages but must not become synthetic specs.
- Linear closeout happens only after validation/deployment-readiness evidence.
Technical Notes
- Linear fetch confirmed IP-99, IP-117, and IP-118 are in the M2 milestone and
Backlogstate. The available fetch payload exposed parent links but no blocker fields; native blocker discovery through Linear research failed because the research tool endpoint was unavailable. - The repo already had a buildable
@punks/wikiapp. The app-foundation gap was polish and integration: default app naming, wiki typecheck task naming, Next metadata base, Vercel/Turbo output cache exclusion, and stale project-spec projection. - Privacy in current code is content posture and deployment boundary. There is no in-app auth/session filter in the Fumadocs loader, search route, docs route, or proxy.
Decision Log
| Decision | Rationale |
|---|---|
Keep IP-99 in the cli spec domain | Existing M1/M1.5 specs use the CLI domain for product-monorepo foundation work; IP-99 is app-foundation delivery, while IP-100 owns the harness methodology domain. |
Treat apps/wiki as canonical source owner | Repo guidance and IP-117 prohibit a second wiki or content/harness source layer. |
| Keep privacy as internal/deployment posture for M2 | M2 requires a private app, but no auth primitive is in scope; Vercel access protection or project access is the deploy-time privacy boundary until auth is specified later. |
| Preserve CLI domain pages unchanged except projection hygiene | IP-118 asks preservation, not a rewrite of CLI knowledge. |