@bvdm/delano 0.1.3 → 0.1.5
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/README.md +2 -0
- package/assets/install-manifest.json +42 -12
- package/assets/payload/.agents/hooks/bash-worktree-fix.sh +0 -0
- package/assets/payload/.agents/hooks/post-tool-logger.js +0 -0
- package/assets/payload/.agents/hooks/session-tracker.js +0 -0
- package/assets/payload/.agents/hooks/user-prompt-logger.js +0 -0
- package/assets/payload/.agents/scripts/check-path-standards.sh +0 -0
- package/assets/payload/.agents/scripts/fix-path-standards.sh +0 -0
- package/assets/payload/.agents/scripts/git-sparse-download.sh +0 -0
- package/assets/payload/.agents/scripts/log-event.js +0 -0
- package/assets/payload/.agents/scripts/log-event.sh +0 -0
- package/assets/payload/.agents/scripts/pm/blocked.sh +0 -0
- package/assets/payload/.agents/scripts/pm/epic-list.sh +0 -0
- package/assets/payload/.agents/scripts/pm/in-progress.sh +0 -0
- package/assets/payload/.agents/scripts/pm/init.sh +0 -0
- package/assets/payload/.agents/scripts/pm/next.sh +0 -0
- package/assets/payload/.agents/scripts/pm/prd-list.sh +0 -0
- package/assets/payload/.agents/scripts/pm/search.sh +0 -0
- package/assets/payload/.agents/scripts/pm/standup.sh +0 -0
- package/assets/payload/.agents/scripts/pm/status.sh +0 -0
- package/assets/payload/.agents/scripts/pm/validate.sh +0 -0
- package/assets/payload/.agents/scripts/query-log.sh +0 -0
- package/assets/payload/.agents/scripts/test-and-log.sh +0 -0
- package/assets/payload/.project/context/README.md +3 -1
- package/assets/payload/.project/context/gui-testing.md +5 -9
- package/assets/payload/.project/context/product-context.md +3 -10
- package/assets/payload/.project/context/progress.md +4 -14
- package/assets/payload/.project/context/project-brief.md +6 -6
- package/assets/payload/.project/context/project-overview.md +3 -7
- package/assets/payload/.project/context/project-structure.md +8 -13
- package/assets/payload/.project/context/project-style-guide.md +3 -10
- package/assets/payload/.project/context/system-patterns.md +5 -9
- package/assets/payload/.project/context/tech-context.md +3 -12
- package/assets/payload/install-delano.sh +0 -0
- package/assets/templates/context/README.md +17 -0
- package/assets/templates/context/gui-testing.md +16 -0
- package/assets/templates/context/product-context.md +10 -0
- package/assets/templates/context/progress.md +13 -0
- package/assets/templates/context/project-brief.md +13 -0
- package/assets/templates/context/project-overview.md +10 -0
- package/assets/templates/context/project-structure.md +19 -0
- package/assets/templates/context/project-style-guide.md +10 -0
- package/assets/templates/context/system-patterns.md +18 -0
- package/assets/templates/context/tech-context.md +10 -0
- package/install-delano.sh +0 -0
- package/package.json +2 -2
- package/src/cli/lib/install.js +47 -6
package/README.md
CHANGED
|
@@ -132,6 +132,7 @@ The CLI does not bundle its own shell or Python runtime.
|
|
|
132
132
|
- it does not install or overwrite repo-root Git config files such as `.gitignore` or `.gitattributes`
|
|
133
133
|
|
|
134
134
|
The base install payload intentionally excludes top-level adapter entry docs such as `AGENTS.md`, `CLAUDE.md`, `CODEX.md`, `OPENCODE.md`, and `PI.md`. Those remain opt-in only.
|
|
135
|
+
The installable `.project/context/` pack is seeded from generic templates during packaging; it does not ship Delano's own repo-specific context files into consumer repositories.
|
|
135
136
|
|
|
136
137
|
## Optional AGENTS.md / CLAUDE.md snippet
|
|
137
138
|
|
|
@@ -160,6 +161,7 @@ This package is deliberately narrow:
|
|
|
160
161
|
|
|
161
162
|
- npm is the distribution surface
|
|
162
163
|
- `.project` remains repo-owned after install
|
|
164
|
+
- `.project/context/` installs as generic starter context that the target repo must replace with its own reality
|
|
163
165
|
- `.agents` remains the runtime surface
|
|
164
166
|
- wrapper commands stay thin in v1.1
|
|
165
167
|
- `install-delano.sh` remains available as the legacy bridge installer
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version":
|
|
3
|
-
"
|
|
2
|
+
"version": 2,
|
|
3
|
+
"files": [
|
|
4
4
|
".agents/adapters/claude/README.md",
|
|
5
5
|
".agents/adapters/codex/README.md",
|
|
6
6
|
".agents/adapters/opencode/README.md",
|
|
@@ -75,16 +75,46 @@
|
|
|
75
75
|
".agents/skills/sync-skill/templates/conflict-resolution-actions.md",
|
|
76
76
|
".agents/skills/sync-skill/templates/drift-report.md",
|
|
77
77
|
".delano/README.md",
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
78
|
+
{
|
|
79
|
+
"source": "assets/templates/context/gui-testing.md",
|
|
80
|
+
"target": ".project/context/gui-testing.md"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"source": "assets/templates/context/product-context.md",
|
|
84
|
+
"target": ".project/context/product-context.md"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"source": "assets/templates/context/progress.md",
|
|
88
|
+
"target": ".project/context/progress.md"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"source": "assets/templates/context/project-brief.md",
|
|
92
|
+
"target": ".project/context/project-brief.md"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"source": "assets/templates/context/project-overview.md",
|
|
96
|
+
"target": ".project/context/project-overview.md"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"source": "assets/templates/context/project-structure.md",
|
|
100
|
+
"target": ".project/context/project-structure.md"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"source": "assets/templates/context/project-style-guide.md",
|
|
104
|
+
"target": ".project/context/project-style-guide.md"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"source": "assets/templates/context/README.md",
|
|
108
|
+
"target": ".project/context/README.md"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"source": "assets/templates/context/system-patterns.md",
|
|
112
|
+
"target": ".project/context/system-patterns.md"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"source": "assets/templates/context/tech-context.md",
|
|
116
|
+
"target": ".project/context/tech-context.md"
|
|
117
|
+
},
|
|
88
118
|
".project/projects/.gitkeep",
|
|
89
119
|
".project/registry/linear-map.json",
|
|
90
120
|
".project/registry/migration-map.json",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Delano Context Pack
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This folder is seeded by `delano install` with generic starter context.
|
|
4
|
+
|
|
5
|
+
Update each file to describe this repository's real delivery context before active implementation work begins.
|
|
4
6
|
|
|
5
7
|
Required context files:
|
|
6
8
|
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
# GUI Testing Policy
|
|
2
2
|
|
|
3
3
|
## Enforcement Mode
|
|
4
|
-
-
|
|
4
|
+
- `<advisory|required>`
|
|
5
5
|
|
|
6
6
|
## Smoke Routes
|
|
7
|
-
-
|
|
8
|
-
- If a project introduces or changes `.delano/` UI surfaces, that project should add the routes and critical flows to exercise here or in project-specific context.
|
|
7
|
+
- <list any critical UI routes or state that must be exercised>
|
|
9
8
|
|
|
10
9
|
## Console Filtering
|
|
11
|
-
-
|
|
12
|
-
- Allow only documented, known development-only noise during local testing.
|
|
10
|
+
- <describe which browser or runtime errors are blocking>
|
|
13
11
|
|
|
14
12
|
## Evidence Requirements
|
|
15
|
-
-
|
|
16
|
-
- Script- and contract-only changes do not require GUI evidence.
|
|
13
|
+
- <describe what screenshots, logs, or notes must be captured>
|
|
17
14
|
|
|
18
15
|
## Design Validation Threshold
|
|
19
|
-
-
|
|
20
|
-
- For non-UI work in this repo, this section is not a gating constraint.
|
|
16
|
+
- <describe the usability and visual quality bar for UI work>
|
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
# Product Context
|
|
2
2
|
|
|
3
3
|
## Users
|
|
4
|
-
-
|
|
5
|
-
- Operators adding Delano to existing repositories and using the PM/runtime scripts day to day.
|
|
6
|
-
- Coding agents working through Delano's shared contracts and adapter notes instead of tool-specific process variants.
|
|
4
|
+
- <describe the primary operator, maintainer, or end-user groups>
|
|
7
5
|
|
|
8
6
|
## Core Flows
|
|
9
|
-
-
|
|
10
|
-
- Install Delano into a repository, then operate primarily through `.project/` contracts and `.agents/scripts/pm/*`.
|
|
11
|
-
- Use `validate`, `status`, `next`, and related scripts to keep delivery state coherent and dependency-safe.
|
|
7
|
+
- <describe the critical workflows that should remain intact>
|
|
12
8
|
|
|
13
9
|
## Constraints
|
|
14
|
-
-
|
|
15
|
-
- `.project` remains the source of truth for delivery state.
|
|
16
|
-
- `.agents` remains the canonical runtime and `.claude` is compatibility only.
|
|
17
|
-
- `.delano` remains optional and must not become process truth.
|
|
10
|
+
- <record the major product, policy, or architectural constraints>
|
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
# Progress
|
|
2
2
|
|
|
3
3
|
## What Changed
|
|
4
|
-
-
|
|
5
|
-
- Synced the `.claude` compatibility mirror to the updated `.agents` runtime so canonical and fallback command paths now align.
|
|
6
|
-
- Replaced the placeholder `.project/context/` files with repo-specific context for Delano as both product and reference implementation.
|
|
7
|
-
- Created the `delano-cli-packaging-v1` project with an approved spec, planned delivery plan, four workstreams, and a decomposed task graph.
|
|
8
|
-
- Added the first working `@bvdm/delano` scaffold: package metadata, `delano` bin entrypoint, command dispatch, wrapper commands, install manifest, asset build pipeline, and a conservative install flow.
|
|
4
|
+
- <summarize the most recent meaningful delivery changes>
|
|
9
5
|
|
|
10
6
|
## Why It Changed
|
|
11
|
-
-
|
|
12
|
-
- Closing that drift restores Delano's contract discipline and makes the documented operating model match the runnable one.
|
|
13
|
-
- The repository still lacked living context for Delano itself and needed a clean planning baseline before starting the npm CLI packaging effort.
|
|
14
|
-
- The CLI effort needed a real executable foundation so later bridge, docs, and release work could build on actual package behavior rather than placeholders.
|
|
7
|
+
- <record the decision or trigger behind those changes>
|
|
15
8
|
|
|
16
9
|
## What Is Next
|
|
17
|
-
-
|
|
18
|
-
- Follow up separately on any external documentation that may still teach legacy `.claude` examples.
|
|
19
|
-
- Continue `delano-cli-packaging-v1` with legacy installer alignment, operator docs, and release-focused verification.
|
|
10
|
+
- <list the next expected work or validation steps>
|
|
20
11
|
|
|
21
12
|
## Remaining Risks
|
|
22
|
-
-
|
|
23
|
-
- The CLI packaging project still needs explicit operator documentation and final quality review before the first npm release is ready.
|
|
13
|
+
- <capture the main unresolved risks or open questions>
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Project Brief
|
|
2
2
|
|
|
3
3
|
## Problem
|
|
4
|
-
-
|
|
5
|
-
-
|
|
4
|
+
- <describe the product or operational problem this repository exists to solve>
|
|
5
|
+
- <capture why Delano is being installed or used in this repository now>
|
|
6
6
|
|
|
7
7
|
## Target Outcome
|
|
8
|
-
-
|
|
9
|
-
-
|
|
8
|
+
- <state the measurable delivery outcome for the current scope>
|
|
9
|
+
- <note what should improve if this effort succeeds>
|
|
10
10
|
|
|
11
11
|
## Scope Boundaries
|
|
12
|
-
- In scope:
|
|
13
|
-
- Out of scope:
|
|
12
|
+
- In scope: <list the work Delano should track here>
|
|
13
|
+
- Out of scope: <list nearby work that should stay outside this context pack>
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
# Project Overview
|
|
2
2
|
|
|
3
3
|
## Mission
|
|
4
|
-
-
|
|
5
|
-
- This repository is the canonical source for the handbook, runtime, templates, and reference install path used when Delano is adopted in other repositories.
|
|
4
|
+
- <describe the repository mission and the outcome it supports>
|
|
6
5
|
|
|
7
6
|
## Active Delivery Scopes
|
|
8
|
-
-
|
|
9
|
-
- `delano-cli-packaging-v1` is the next planned scope: add a thin npm CLI and packaging layer around the existing runtime without turning Delano into a harness.
|
|
7
|
+
- <list the current active or planned Delano project slugs>
|
|
10
8
|
|
|
11
9
|
## Current Health
|
|
12
|
-
-
|
|
13
|
-
- `.agents/` is the canonical runtime tree. `.claude/` exists in this repo as a directory mirror with matching contents, not as a symlink.
|
|
14
|
-
- The primary current gap was context quality rather than missing runtime pieces; the context pack should now be maintained as execution memory, not treated as boilerplate.
|
|
10
|
+
- <summarize runtime readiness, major gaps, and known operational concerns>
|
|
@@ -3,22 +3,17 @@
|
|
|
3
3
|
Document major repository boundaries and ownership.
|
|
4
4
|
|
|
5
5
|
## Canonical Boundaries
|
|
6
|
-
- `HANDBOOK.md`:
|
|
7
|
-
- `.project/`: delivery
|
|
8
|
-
- `.agents/`:
|
|
9
|
-
- `.claude/`: compatibility
|
|
10
|
-
- `.delano/`: optional presentation
|
|
6
|
+
- `HANDBOOK.md`: <describe where operating rules live>
|
|
7
|
+
- `.project/`: <describe the delivery-truth contents for this repository>
|
|
8
|
+
- `.agents/`: <describe the shared runtime assets in use>
|
|
9
|
+
- `.claude/`: <note compatibility expectations if present>
|
|
10
|
+
- `.delano/`: <note any optional presentation or UI layer if present>
|
|
11
11
|
|
|
12
12
|
## Runtime Areas
|
|
13
|
-
-
|
|
14
|
-
- `.agents/skills/`: stage skills and supporting runbooks/templates used to structure work.
|
|
15
|
-
- `.agents/rules/` and `.agents/hooks/`: guardrails and runtime instrumentation.
|
|
16
|
-
- `.agents/adapters/<agent>/`: thin agent-specific notes for Claude, Codex, OpenCode, and Pi.
|
|
13
|
+
- <list the important scripts, skills, rules, hooks, or service areas>
|
|
17
14
|
|
|
18
15
|
## Documentation Areas
|
|
19
|
-
-
|
|
20
|
-
- `docs/`: operator-facing guidance that expands on the handbook and runtime.
|
|
21
|
-
- Top-level adapter entry files such as `AGENTS.md`, `CLAUDE.md`, and `CODEX.md`: thin pointers into the canonical model.
|
|
16
|
+
- <list the primary operator-facing docs or reference files>
|
|
22
17
|
|
|
23
18
|
## Working Notes
|
|
24
|
-
-
|
|
19
|
+
- <capture scratch paths, generated areas, or local-only conventions worth knowing>
|
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
# Project Style Guide
|
|
2
2
|
|
|
3
3
|
## Naming
|
|
4
|
-
-
|
|
5
|
-
- Use `WS-<letter>` for workstream identifiers and `T-###` for task identifiers.
|
|
6
|
-
- Keep adapter/runtime references explicit: `.agents` for canonical paths, `.claude` only when discussing compatibility behavior.
|
|
4
|
+
- <record naming rules for project slugs, workstreams, tasks, packages, or services>
|
|
7
5
|
|
|
8
6
|
## Documentation Conventions
|
|
9
|
-
-
|
|
10
|
-
- Use handbook terminology consistently: outcome, spec, probe decision, workstream, task, evidence, and closeout.
|
|
11
|
-
- Frontmatter timestamps must be ISO8601 UTC.
|
|
12
|
-
- Do not leak machine-specific absolute paths into shared docs or contracts.
|
|
7
|
+
- <record conventions for context updates, timestamps, terminology, and evidence>
|
|
13
8
|
|
|
14
9
|
## Review Expectations
|
|
15
|
-
-
|
|
16
|
-
- Run `bash .agents/scripts/pm/validate.sh` after modifying delivery artifacts or runtime behavior.
|
|
17
|
-
- When planning install or packaging work, prefer conflict-first and non-destructive behavior by default.
|
|
10
|
+
- <record required validation, review scope, and any change-management constraints>
|
|
@@ -3,20 +3,16 @@
|
|
|
3
3
|
Capture architecture and delivery patterns that should be reused.
|
|
4
4
|
|
|
5
5
|
## Handbook-First Delivery
|
|
6
|
-
-
|
|
7
|
-
- Planning follows the handbook stages: discovery, optional probe, planning, breakdown, sync, execution, quality, closeout, and learning.
|
|
6
|
+
- <describe how this repository uses Delano's operating model>
|
|
8
7
|
|
|
9
8
|
## File-Contract-First State
|
|
10
|
-
-
|
|
11
|
-
- Project context files are part of execution continuity and should be updated when repo reality changes.
|
|
9
|
+
- <describe which files are canonical and how tooling should treat them>
|
|
12
10
|
|
|
13
11
|
## Thin Runtime Wrapping
|
|
14
|
-
-
|
|
15
|
-
- Adapter entrypoints stay minimal and point back to the shared runtime and handbook.
|
|
12
|
+
- <describe how wrappers or automation should stay conservative>
|
|
16
13
|
|
|
17
14
|
## Compatibility Without Dual Truth
|
|
18
|
-
-
|
|
15
|
+
- <describe any compatibility mirrors and the canonical runtime boundary>
|
|
19
16
|
|
|
20
17
|
## Conservative Installation
|
|
21
|
-
-
|
|
22
|
-
- Seeded files may establish a repo, but once installed the consumer repo owns its own `.project` state.
|
|
18
|
+
- <describe any install, bootstrap, or write-safety expectations>
|
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
# Tech Context
|
|
2
2
|
|
|
3
3
|
## Stack
|
|
4
|
-
-
|
|
5
|
-
- Bash for the PM/operator script layer.
|
|
6
|
-
- Python for validation and dependency-graph checks.
|
|
7
|
-
- Git for repository discovery, sparse installs, and sync-oriented workflows.
|
|
8
|
-
- Node/npm is the intended packaging surface for the next CLI initiative, but not yet the execution layer for Delano itself.
|
|
4
|
+
- <list the key languages, frameworks, runtimes, and build tools>
|
|
9
5
|
|
|
10
6
|
## Runtime Constraints
|
|
11
|
-
-
|
|
12
|
-
- Canonical command paths should use `.agents/scripts/...`; `.claude/scripts/...` is compatibility-only when the mirror exists.
|
|
13
|
-
- Shared docs and contracts must avoid absolute path leakage.
|
|
14
|
-
- `.project` and `.agents` are seeded artifacts and runtime assets, not package-owned mutable state after install.
|
|
7
|
+
- <record environment assumptions, platform constraints, and required dependencies>
|
|
15
8
|
|
|
16
9
|
## Integration Points
|
|
17
|
-
-
|
|
18
|
-
- `.agents/scripts/pm/init.sh`, `validate.sh`, `status.sh`, `next.sh`, and `blocked.sh` are the current critical-path operator interface.
|
|
19
|
-
- `install-delano.sh` is the current shell-first bootstrap path for installing Delano into another repository.
|
|
10
|
+
- <list the main external systems, internal scripts, or registry files this repo depends on>
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Delano Context Pack
|
|
2
|
+
|
|
3
|
+
This folder is seeded by `delano install` with generic starter context.
|
|
4
|
+
|
|
5
|
+
Update each file to describe this repository's real delivery context before active implementation work begins.
|
|
6
|
+
|
|
7
|
+
Required context files:
|
|
8
|
+
|
|
9
|
+
- `project-overview.md`
|
|
10
|
+
- `project-brief.md`
|
|
11
|
+
- `tech-context.md`
|
|
12
|
+
- `project-structure.md`
|
|
13
|
+
- `system-patterns.md`
|
|
14
|
+
- `product-context.md`
|
|
15
|
+
- `project-style-guide.md`
|
|
16
|
+
- `progress.md`
|
|
17
|
+
- `gui-testing.md`
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# GUI Testing Policy
|
|
2
|
+
|
|
3
|
+
## Enforcement Mode
|
|
4
|
+
- `<advisory|required>`
|
|
5
|
+
|
|
6
|
+
## Smoke Routes
|
|
7
|
+
- <list any critical UI routes or state that must be exercised>
|
|
8
|
+
|
|
9
|
+
## Console Filtering
|
|
10
|
+
- <describe which browser or runtime errors are blocking>
|
|
11
|
+
|
|
12
|
+
## Evidence Requirements
|
|
13
|
+
- <describe what screenshots, logs, or notes must be captured>
|
|
14
|
+
|
|
15
|
+
## Design Validation Threshold
|
|
16
|
+
- <describe the usability and visual quality bar for UI work>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Product Context
|
|
2
|
+
|
|
3
|
+
## Users
|
|
4
|
+
- <describe the primary operator, maintainer, or end-user groups>
|
|
5
|
+
|
|
6
|
+
## Core Flows
|
|
7
|
+
- <describe the critical workflows that should remain intact>
|
|
8
|
+
|
|
9
|
+
## Constraints
|
|
10
|
+
- <record the major product, policy, or architectural constraints>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Progress
|
|
2
|
+
|
|
3
|
+
## What Changed
|
|
4
|
+
- <summarize the most recent meaningful delivery changes>
|
|
5
|
+
|
|
6
|
+
## Why It Changed
|
|
7
|
+
- <record the decision or trigger behind those changes>
|
|
8
|
+
|
|
9
|
+
## What Is Next
|
|
10
|
+
- <list the next expected work or validation steps>
|
|
11
|
+
|
|
12
|
+
## Remaining Risks
|
|
13
|
+
- <capture the main unresolved risks or open questions>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Project Brief
|
|
2
|
+
|
|
3
|
+
## Problem
|
|
4
|
+
- <describe the product or operational problem this repository exists to solve>
|
|
5
|
+
- <capture why Delano is being installed or used in this repository now>
|
|
6
|
+
|
|
7
|
+
## Target Outcome
|
|
8
|
+
- <state the measurable delivery outcome for the current scope>
|
|
9
|
+
- <note what should improve if this effort succeeds>
|
|
10
|
+
|
|
11
|
+
## Scope Boundaries
|
|
12
|
+
- In scope: <list the work Delano should track here>
|
|
13
|
+
- Out of scope: <list nearby work that should stay outside this context pack>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Project Overview
|
|
2
|
+
|
|
3
|
+
## Mission
|
|
4
|
+
- <describe the repository mission and the outcome it supports>
|
|
5
|
+
|
|
6
|
+
## Active Delivery Scopes
|
|
7
|
+
- <list the current active or planned Delano project slugs>
|
|
8
|
+
|
|
9
|
+
## Current Health
|
|
10
|
+
- <summarize runtime readiness, major gaps, and known operational concerns>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Project Structure
|
|
2
|
+
|
|
3
|
+
Document major repository boundaries and ownership.
|
|
4
|
+
|
|
5
|
+
## Canonical Boundaries
|
|
6
|
+
- `HANDBOOK.md`: <describe where operating rules live>
|
|
7
|
+
- `.project/`: <describe the delivery-truth contents for this repository>
|
|
8
|
+
- `.agents/`: <describe the shared runtime assets in use>
|
|
9
|
+
- `.claude/`: <note compatibility expectations if present>
|
|
10
|
+
- `.delano/`: <note any optional presentation or UI layer if present>
|
|
11
|
+
|
|
12
|
+
## Runtime Areas
|
|
13
|
+
- <list the important scripts, skills, rules, hooks, or service areas>
|
|
14
|
+
|
|
15
|
+
## Documentation Areas
|
|
16
|
+
- <list the primary operator-facing docs or reference files>
|
|
17
|
+
|
|
18
|
+
## Working Notes
|
|
19
|
+
- <capture scratch paths, generated areas, or local-only conventions worth knowing>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Project Style Guide
|
|
2
|
+
|
|
3
|
+
## Naming
|
|
4
|
+
- <record naming rules for project slugs, workstreams, tasks, packages, or services>
|
|
5
|
+
|
|
6
|
+
## Documentation Conventions
|
|
7
|
+
- <record conventions for context updates, timestamps, terminology, and evidence>
|
|
8
|
+
|
|
9
|
+
## Review Expectations
|
|
10
|
+
- <record required validation, review scope, and any change-management constraints>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# System Patterns
|
|
2
|
+
|
|
3
|
+
Capture architecture and delivery patterns that should be reused.
|
|
4
|
+
|
|
5
|
+
## Handbook-First Delivery
|
|
6
|
+
- <describe how this repository uses Delano's operating model>
|
|
7
|
+
|
|
8
|
+
## File-Contract-First State
|
|
9
|
+
- <describe which files are canonical and how tooling should treat them>
|
|
10
|
+
|
|
11
|
+
## Thin Runtime Wrapping
|
|
12
|
+
- <describe how wrappers or automation should stay conservative>
|
|
13
|
+
|
|
14
|
+
## Compatibility Without Dual Truth
|
|
15
|
+
- <describe any compatibility mirrors and the canonical runtime boundary>
|
|
16
|
+
|
|
17
|
+
## Conservative Installation
|
|
18
|
+
- <describe any install, bootstrap, or write-safety expectations>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Tech Context
|
|
2
|
+
|
|
3
|
+
## Stack
|
|
4
|
+
- <list the key languages, frameworks, runtimes, and build tools>
|
|
5
|
+
|
|
6
|
+
## Runtime Constraints
|
|
7
|
+
- <record environment assumptions, platform constraints, and required dependencies>
|
|
8
|
+
|
|
9
|
+
## Integration Points
|
|
10
|
+
- <list the main external systems, internal scripts, or registry files this repo depends on>
|
package/install-delano.sh
CHANGED
|
File without changes
|
package/package.json
CHANGED
package/src/cli/lib/install.js
CHANGED
|
@@ -30,6 +30,7 @@ function readInstallManifest() {
|
|
|
30
30
|
return {
|
|
31
31
|
manifestPath,
|
|
32
32
|
manifest,
|
|
33
|
+
entries: normalizeManifestEntries(manifest),
|
|
33
34
|
payloadRoot: path.join(getPackageRoot(), "assets", "payload")
|
|
34
35
|
};
|
|
35
36
|
}
|
|
@@ -120,17 +121,17 @@ function parseInstallArgs(args) {
|
|
|
120
121
|
}
|
|
121
122
|
|
|
122
123
|
function buildInstallPlan(options) {
|
|
123
|
-
const { manifest, payloadRoot } = readInstallManifest();
|
|
124
|
-
const items =
|
|
125
|
-
const sourcePath = path.join(payloadRoot,
|
|
124
|
+
const { manifest, entries, payloadRoot } = readInstallManifest();
|
|
125
|
+
const items = entries.map((entry) => {
|
|
126
|
+
const sourcePath = path.join(payloadRoot, entry.target);
|
|
126
127
|
if (!existsSync(sourcePath)) {
|
|
127
|
-
throw new CliError(getMissingPackagedAssetMessage(
|
|
128
|
+
throw new CliError(getMissingPackagedAssetMessage(entry.target), 1);
|
|
128
129
|
}
|
|
129
130
|
|
|
130
131
|
return {
|
|
131
|
-
relativePath,
|
|
132
|
+
relativePath: entry.target,
|
|
132
133
|
sourcePath,
|
|
133
|
-
targetPath: path.join(options.target,
|
|
134
|
+
targetPath: path.join(options.target, entry.target)
|
|
134
135
|
};
|
|
135
136
|
});
|
|
136
137
|
|
|
@@ -252,12 +253,52 @@ function applyInstallPlan(plan, options) {
|
|
|
252
253
|
console.log(`Installed ${plan.items.length} files into ${options.target}.`);
|
|
253
254
|
}
|
|
254
255
|
|
|
256
|
+
function normalizeManifestEntries(rawManifest) {
|
|
257
|
+
const entries = Array.isArray(rawManifest.files) ? rawManifest.files : rawManifest.paths;
|
|
258
|
+
if (!Array.isArray(entries)) {
|
|
259
|
+
throw new CliError("Install manifest is missing a files array.", 1);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
const seenTargets = new Set();
|
|
263
|
+
return entries.map((entry) => {
|
|
264
|
+
const normalized = typeof entry === "string"
|
|
265
|
+
? { source: entry, target: entry }
|
|
266
|
+
: entry;
|
|
267
|
+
|
|
268
|
+
if (!normalized || typeof normalized.source !== "string" || typeof normalized.target !== "string") {
|
|
269
|
+
throw new CliError("Install manifest entries must be strings or { source, target } objects.", 1);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
validateManifestPath(normalized.source, "source");
|
|
273
|
+
validateManifestPath(normalized.target, "target");
|
|
274
|
+
|
|
275
|
+
if (seenTargets.has(normalized.target)) {
|
|
276
|
+
throw new CliError(`Install manifest target is duplicated: ${normalized.target}`, 1);
|
|
277
|
+
}
|
|
278
|
+
seenTargets.add(normalized.target);
|
|
279
|
+
|
|
280
|
+
return normalized;
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
function validateManifestPath(relativePath, fieldName) {
|
|
285
|
+
if (path.isAbsolute(relativePath)) {
|
|
286
|
+
throw new CliError(`Install manifest ${fieldName} must be relative: ${relativePath}`, 1);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
const normalizedPath = path.normalize(relativePath);
|
|
290
|
+
if (normalizedPath.startsWith("..") || normalizedPath === "..") {
|
|
291
|
+
throw new CliError(`Install manifest ${fieldName} must stay inside the package root: ${relativePath}`, 1);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
255
295
|
module.exports = {
|
|
256
296
|
SUPPORTED_AGENTS,
|
|
257
297
|
applyInstallPlan,
|
|
258
298
|
buildInstallPlan,
|
|
259
299
|
collectConflicts,
|
|
260
300
|
confirmInstall,
|
|
301
|
+
normalizeManifestEntries,
|
|
261
302
|
parseAgentList,
|
|
262
303
|
parseInstallArgs,
|
|
263
304
|
printConflicts,
|