Skip to content

Skills-based setup copies framework's own files into target projects #9

@sgbett

Description

@sgbett

Problem

When using the Claude Skills installation method, the setup process copies the entire .architecture/ directory from the cloned repo into the target project. This includes the framework's own work product:

  • 11 ADRs (framework-internal architectural decisions)
  • 10 reviews (framework's own architecture reviews)
  • 8 comparisons (version comparison documents)
  • Research docs, methodology documents, a 50KB deferrals.md
  • The framework's own config.yml (with pragmatic_mode.enabled: true)

A new project should only receive:

  • templates/ (ADR template, review template, config template, etc.)
  • agent_docs/ (reference documentation)
  • Empty directories for project-specific content (decisions/adrs/, reviews/, recalibration/, comparisons/)
  • A clean config.yml initialised from the template

The MCP server (mcp/index.js) already handles this correctly — setupArchitecture() generates content programmatically and never copies framework files. But the skills-based path uses installation-procedures.md which instructs the LLM to do a broad copy, resulting in cruft.

Additionally

The triple-nesting clone path (.architecture/.architecture/.architecture/) is confusing and error-prone. The MCP server avoids this entirely.

Suggested Fix

A manifest-based approach: add an .install-manifest file to the repo that declares exactly what should be copied to target projects. The installation process reads the manifest and copies only listed items, rather than doing a blind cp -r *.

members.yml and principles.md don't need to be copied at all — they should be generated from scratch based on the target project's tech stack (which is what the MCP server already does).

This also moves ADR-009 (Script-Based Deterministic Operations) forward — the installation is the highest-stakes deterministic operation in the framework, and the trigger condition identified in ADR-009 ("bash command construction causes bugs") was exactly what we hit. The fix extracts all file operations into a deterministic shell script driven by the manifest, keeping interpretive work (project analysis, team customisation, principle generation) in the skill instructions.

I've implemented this in my fork if it's useful as a reference: bettison-org#2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions