Skip to content

[Feature]: Separate Spec Kit framework assets from repository-specific project memory #2681

Open

Description

@grafvonb

Problem Statement

I’m frustrated when .specify/ contains both reusable Spec Kit framework/tooling assets and repository-specific project artifacts.

For example, a repository may have generic or tool-managed content such as extensions, scripts, templates, workflows, and integrations under .specify/, while also storing repo-owned artifacts such as memory, architecture records, constitution, feature state, plans, and other project-specific knowledge in nearby paths.

This makes ownership ambiguous:

  • It is not obvious which files are framework-managed versus repo-authored.
  • Review expectations differ, but the directory structure does not make that visible.
  • Git ignore/tracking decisions become harder because some .specify/ content is generated/tooling-like while other content may be architectural source of truth.
  • Project memory feels important and repository-specific, but it sits beside imported or reusable framework assets.

The result is a blurry boundary between Spec Kit as a tool/runtime and Spec Kit as the location for project decision records.

Proposed Solution

Please introduce a clearer directory boundary between Spec Kit framework assets and repository-specific artifacts.

One possible structure would be:

.specify/
  system/
    extensions/
    scripts/
    templates/
    workflows/
    integrations/
  project/
    memory/
    features/

The exact naming matters less than the principle: reusable/tool-managed Spec Kit assets should not live next to repository-authored project memory without a visible ownership boundary.

Ideally, Spec Kit would document the intended ownership model for each area and update scripts/templates so generated project artifacts are written into the project-owned area consistently.

Alternatives Considered

Another option would be to keep framework assets under .specify/ and move project-owned artifacts to a separate top-level location, for example:

.specify/
  extensions/
  scripts/
  templates/
  workflows/
  integrations/

.project-memory/
  architecture...
  constitution...
  features...

Component

Agent integrations (command files, workflows)

AI Agent (if applicable)

None

Use Cases

  1. When a repository uses Spec Kit over time and needs to distinguish tool-managed framework assets from repo-owned project knowledge.
  2. During architecture, spec, or implementation review, when reviewers need to know whether a file is generated/tooling infrastructure or an intentional project decision record.
  3. When configuring .gitignore, CI checks, or repository hygiene rules for Spec Kit files.
  4. When teams want to preserve project memory, architecture, constitution, and feature artifacts as source-of-truth records without mixing them with reusable extensions, scripts, or templates.
  5. When Spec Kit is installed or upgraded and users need confidence that framework updates will not be confused with project-specific state.

Acceptance Criteria

  • Spec Kit has a documented ownership model that distinguishes framework/tool-managed assets from repository-specific project artifacts.
  • Repository-specific artifacts such as memory, architecture records, constitution, feature state, specs, plans, or tasks are written under a clearly named project-owned area.
  • Framework assets such as extensions, scripts, templates, workflows, and integrations are grouped under a clearly named tool/system-owned area.
  • Existing Spec Kit commands and templates consistently read from and write to the new or clarified locations.
  • Migration or compatibility guidance is provided for repositories that already use the current .specify/ layout.
  • The directory layout makes git tracking and review expectations clear without requiring users to inspect individual files.
  • The change works with supported agents and does not break existing Spec Kit workflows without a documented transition path.

Additional Context

No response

Activity

  1. mnriem commented on May 26, 2026

    @mnriem
    Collaborator

    Feel free to spearhead the effort. Note it does need to be backwards compatible for at least 4 minor releases so we can give folks time to get used to this

  2. added
    feature-assessRun the Spec Kit idea-assessment pipeline on this feature request
    and removed
    feature-assessRun the Spec Kit idea-assessment pipeline on this feature request
    on Aug 18, 2026
  3. github-actions commented on Aug 18, 2026

    @github-actions
    Contributor

    Feature assessment — separate-framework-assets · Stage 1/5: Intake

    Idea Intake: Separate Spec Kit Framework Assets from Project Memory

    Idea (as captured)

    Title: [Feature]: Separate Spec Kit framework assets from repository-specific project memory

    Author: @grafvonb (opened 2026-05-23)

    Problem Statement: Frustration when .specify/ contains both reusable Spec Kit framework/tooling assets and repository-specific project artifacts. Framework/tool-managed content includes: extensions, scripts, templates, workflows, integrations. Repository-specific project content includes: memory, architecture records, constitution, feature state, plans, and other project-specific knowledge.

    This causes: ambiguous ownership (framework-managed vs. repo-authored not visually distinct); different review expectations not reflected in directory structure; harder .gitignore/tracking decisions; project memory "feels important and repo-specific but sits beside imported or reusable framework assets."

    Proposed Solution: Introduce a clearer directory boundary. Example:

    .specify/
      system/
        extensions/
        scripts/
        templates/
        workflows/
        integrations/
      project/
        memory/
        features/
    

    Alternatives considered: Keep framework assets under .specify/, move project-owned artifacts to a top-level location (e.g., .project-memory/).

    Collaborator signal (@mnriem, 2026-05-26): "Feel free to spearhead the effort. Note it does need to be backwards compatible for at least 4 minor releases so we can give folks time to get used to this."

    Restated

    Users of Spec Kit over time find that .specify/ conflates two distinct ownership classes — tool-managed framework assets (extensions, scripts, templates, integrations) and repository-authored project state (memory, constitution, features, specs) — creating ambiguity about which files are generated infrastructure vs. intentional decision records. The request is to introduce a visible directory boundary between these two classes.

    Origin & Context

    • Raised by: @grafvonb (contributor)
    • Trigger: Practical pain from long-term Spec Kit usage where mixed ownership under .specify/ created confusion during code review, .gitignore configuration, and project hygiene
    • Stakeholder signal: @mnriem affirmed the direction and stated a backward-compatibility constraint of at least 4 minor releases

    First-Glance Unknowns

    • [NEEDS CLARIFICATION: What is the current minor release version, and what does "4 minor releases" translate to in calendar time or deprecation horizon?]
    • [NEEDS CLARIFICATION: Which files under .specify/ are actually written by the Spec Kit CLI/extensions at runtime vs. committed by the user as project artifacts?]
    • [NEEDS CLARIFICATION: Are all .specify/ subdirectories standardized, or do projects vary significantly in what they put there?]
    • [NEEDS CLARIFICATION: Should the renamed paths be configurable, or does Spec Kit own the canonical layout?]
    • [NEEDS CLARIFICATION: How does the agent-context extension and its config at .specify/extensions/agent-context/ factor into the new boundary?]

    Posted by GitHub Copilot (model: claude-sonnet-4.6) running the feature-assess pipeline on behalf of @mnriem.

    Generated by 💡 Assess a Feature Request by Installing and Running Spec Kit for issue #2681 · 891.9 AIC · ⌖ 18.3 AIC · ⊞ 35.5K · ◷

  4. github-actions commented on Aug 18, 2026

    @github-actions
    Contributor

    Feature assessment — separate-framework-assets · Stage 2/5: Research

    Idea Research: Separate Spec Kit Framework Assets from Project Memory

    • Slug: separate-framework-assets
    • Created: 2026-08-18
    • Evidence confidence (overall): medium

    Users & Demand

    Prior Art

    • Spec Kit currently mixes two ownership classes under .specify/: codebase inspection confirms framework-managed subdirectories (scripts/, templates/, extensions/, workflows/, presets/, integrations/, init-options.json, integration.json, .gitignore) coexist with project-owned state (memory/, feature.json, assessments/). This is the problem observed in practice. [source: grep of .specify/ references in src/specify_cli/__init__.py, agents.py, extensions/__init__.py] (confidence: high)
    • ~/.specify/ already separates user-global state (auth.json, extension-catalogs.yml) from project state — precedent for namespacing exists in the same codebase. [source: src/specify_cli/authentication/config.py, src/specify_cli/extensions/_commands.py] (confidence: high)
    • Git's .git/ directory: entirely framework-managed, no user files ever placed inside. Spec Kit's .specify/ started similarly but diverged by hosting user knowledge artifacts alongside CLI state. [source: ASSUMPTION / general knowledge] (confidence: medium)
    • No prior Spec Kit issues or PRs addressing this boundary split were found in CHANGELOG.md. [source: CHANGELOG.md grep] (confidence: medium)

    Market & Context

    • Users today cope through convention or by ignoring the ambiguity; the request is reactive (existing pain, not speculative). — ASSUMPTION (confidence: medium)
    • Cost of doing nothing: continued ambiguity for teams using Spec Kit over months, no documented ownership model, ad-hoc .gitignore decisions. — ASSUMPTION (confidence: medium)
    • Backward compatibility is a hard constraint: at v0.16.5.dev0, "4 minor releases" implies no forced migration until ~v0.20.x. — [source: pyproject.toml version, maintainer comment] (confidence: high)

    Data & Constraints

    • Current version: 0.16.5.dev0 [source: pyproject.toml]
    • Backward-compat floor: ≥ 4 minor releases [source: maintainer comment]; release cadence unknown [NEEDS CLARIFICATION]
    • Hard-coded paths (partial list): INTEGRATION_JSON = ".specify/integration.json", INIT_OPTIONS_FILE = ".specify/init-options.json", .specify/memory/ rewrite in agents.py, .specify/extensions/.registry, .specify/workflows/, .specify/scripts/, .specify/templates/ — all referenced by name across multiple Python modules, shell scripts, and command templates [source: integration_state.py, _init_options.py, agents.py, extensions/__init__.py, scripts/bash/common.sh] (confidence: high)
    • Path rewrites at install time: agents.py rewrites relative paths (e.g. ../../memory/ → .specify/memory/) when rendering command files — a path reorganization requires updating these rewrites and all consumers [source: src/specify_cli/agents.py ~line 250–275] (confidence: high)
    • Manifest tracking: integration manifests at .specify/integrations/<key>.manifest.json; a rename would break existing manifests [source: src/specify_cli/integrations/manifest.py] (confidence: high)

    Evidence Against the Idea

    • Very high migration cost: dozens of hard-coded .specify/<subdir> references across Python source, shell scripts (bash + PowerShell), Python scripts, command templates, and extension bodies. A rename is a breaking API change for every existing project and extension author. [source: codebase grep] (confidence: high)
    • Slim user signal: 1 reporter, 0 upvotes on the issue, 1 maintainer comment. The pain is plausible but narrow. [source: issue [Feature]: Separate Spec Kit framework assets from repository-specific project memory #2681] (confidence: high)
    • Co-existence complexity: a 4-minor-release backward-compat window means detecting old layout and supporting both simultaneously, adding CLI complexity that must eventually be removed. — ASSUMPTION (confidence: medium)
    • Naming is unsettled: system/ and project/ are illustrative in the issue; no canonical naming has been agreed — bike-shedding risk. — ASSUMPTION (confidence: low)

    Gaps & Open Questions

    • [NEEDS CLARIFICATION: What is the release cadence (how long is "4 minor releases" in calendar time)?]
    • [NEEDS CLARIFICATION: Is there a formal inventory of which .specify/ subdirectories are "framework-managed" vs. "project-owned"? Some generated-but-project-specific dirs (e.g. workflows/runs/) are ambiguous.]
    • [NEEDS CLARIFICATION: Should community extension authors be notified and given a migration window?]
    • [NEEDS CLARIFICATION: Is there a preference between the "two subdirs under .specify/" approach vs. moving project artifacts to a top-level directory?]

    Sources


    Posted by GitHub Copilot (model: claude-sonnet-4.6) running the feature-assess pipeline on behalf of @mnriem.

    Generated by 💡 Assess a Feature Request by Installing and Running Spec Kit for issue #2681 · 891.9 AIC · ⌖ 18.3 AIC · ⊞ 35.5K · ◷

  5. github-actions commented on Aug 18, 2026

    @github-actions
    Contributor

    Feature assessment — separate-framework-assets · Stage 3/5: Problem

    Problem Definition: Separate Spec Kit Framework Assets from Project Memory

    • Slug: separate-framework-assets
    • Created: 2026-08-18
    • Inputs used: intake.md | research.md

    Problem Statement

    Teams using Spec Kit over time cannot distinguish, at a glance, which files under .specify/ are managed by the Spec Kit CLI/framework (safe to regenerate or ignore) from which files are project-authored source-of-truth (must be version-controlled and reviewed as first-class artifacts), because both ownership classes currently share a flat, boundary-less directory.

    Affected Users & Stakeholders

    • Users: Long-term Spec Kit adopters — teams or individuals who have used Spec Kit across multiple features, accumulating CLI-installed framework assets and handwritten project knowledge in the same directory. Affected by ambiguous ownership, inconsistent .gitignore decisions, and review friction.
    • Users: New contributors to an existing Spec Kit project — cannot determine which .specify/ files are safe to delete/regenerate vs. require careful review without inspecting file contents.
    • Stakeholders: Spec Kit maintainers — bear the cost of migration, must maintain backward compatibility, and set the ownership model. @mnriem has explicitly affirmed the direction.
    • Stakeholders: Community extension authors — any extension writing files under .specify/ would need to adopt the new layout during the compatibility window.

    Goals

    • Establish a documented, enforced ownership model distinguishing "framework/tool-managed" from "project-authored" areas.
    • Make .gitignore and CI hygiene decisions obviously correct without per-file inspection.
    • Make code review expectations clear at the directory level.
    • Ensure Spec Kit commands and extensions consistently read and write to the correct area.

    Non-Goals

    • Redesigning Spec Kit's core data model or spec/plan/task format.
    • Changing what information is stored — only where.
    • Forcing immediate migration (backward compatibility required for ≥ 4 minor releases).
    • Automated .gitignore management.

    Success Metrics

    • A user can determine the ownership class of any .specify/ file from its directory path alone, without reading its contents. (qualitative; verifiable by user testing) (baseline: not possible today)
    • Spec Kit documentation formally declares the ownership model, and internal code enforces it. (qualitative) (baseline: undocumented)
    • Zero regressions in existing Spec Kit commands during and after transition. (quantitative: test suite passes)
    • Community extension authors receive a migration guide with ≥ 1 full minor-version warning before old paths are removed. [NEEDS CLARIFICATION: release cadence]

    Cost of Inaction

    Without a change, ownership ambiguity grows as more project state accumulates under .specify/. Teams will continue facing inconsistent .gitignore practices, code review confusion, and risk that CLI upgrades alter what users consider source-of-truth artifacts. The problem compounds with each new extension or feature that writes to .specify/.

    Open Questions

    • [NEEDS CLARIFICATION: What is the current release cadence? "4 minor releases" is the backward-compat floor but calendar time matters for planning.]
    • [NEEDS CLARIFICATION: Should workflows/runs/ (framework-generated but containing project-specific run state) be classified as framework-managed or project-owned?]
    • [NEEDS CLARIFICATION: Are there company-internal Spec Kit forks or bundles that hard-code .specify/<subdir> paths and whose operators must be contacted separately?]

    Posted by GitHub Copilot (model: claude-sonnet-4.6) running the feature-assess pipeline on behalf of @mnriem.

    Generated by 💡 Assess a Feature Request by Installing and Running Spec Kit for issue #2681 · 891.9 AIC · ⌖ 18.3 AIC · ⊞ 35.5K · ◷

  6. github-actions commented on Aug 18, 2026

    @github-actions
    Contributor

    Feature assessment — separate-framework-assets · Stage 4/5: Concept

    Concept: Separate Spec Kit Framework Assets from Project Memory

    • Slug: separate-framework-assets
    • Created: 2026-08-18
    • Recommended option: Option B — Documented Ownership Model + Gradual Path Migration

    Options

    Option A — Immediate Structural Split (.specify/system/ and .specify/project/)

    • Sketch: All framework-managed assets move under .specify/system/; all project-authored artifacts move under .specify/project/. Old paths trigger deprecation warnings and are read for ≥ 4 minor releases. Maximum clarity.
    • Appetite: large (months)
    • Trade-offs: Cleanest eventual state. Very high implementation cost — dozens of hard-coded path references across Python source, three script variants (bash/powershell/python), command templates, extension bodies, and community extension documentation. All community extension authors must migrate.
    • Rabbit holes: Dual-layout detection logic needed in every path consumer. Integration manifests, path-rewrite logic in agents.py, and all three script variants must be updated. Extensions that hard-code .specify/<subdir> in command bodies break silently.

    Option B — Documented Ownership Model + Gradual Path Migration

    • Sketch: Formally document which .specify/ subdirectories are framework-managed vs. project-owned (documentation page or specify docs layout command), without moving anything yet. In subsequent minor releases, introduce new canonical paths for the highest-ambiguity cases (memory/, assessments/) as purely additive changes with old paths as aliases, incrementally resolving the boundary.
    • Appetite: medium (weeks for documentation) + small (days) per incremental path migration
    • Trade-offs: Low regression risk; delivers value immediately via documentation; phased approach naturally satisfies the 4-minor-release backward-compat constraint. Trade-off: the directory remains mixed during transition; users wanting visual clarity must wait for multiple releases.
    • Rabbit holes: "Gradual" can become "never shipped" — requires a tracked roadmap with a committed endpoint. Ownership markers (e.g. sentinel files in framework dirs) need convention enforcement.

    Option C — Top-Level Separation (.specify/ for framework, new .project/ for project artifacts)

    • Sketch: Framework assets stay under .specify/ unchanged. Project-owned artifacts (memory/, feature.json, assessments/) move to a new top-level .project/ directory. Dual-read during compatibility window.
    • Appetite: large (months)
    • Trade-offs: Cleanest conceptual split, aligns with tools like .git/ and .nx/. Costs: a new top-level dotfile is a bigger repository change; .gitignore, CI, and third-party tooling must update. Highest visibility surface area for breakage.
    • Rabbit holes: .project/ has no established convention. Every extension injecting into .specify/memory/ must move. Dual-read logic needed in same places as Option A.

    Recommendation

    Option B. Evidence shows: (a) migration cost for Options A/C is very high (dozens of hard-coded paths across three script variants, all command templates, community extensions); (b) user signal is thin (1 reporter, 0 upvotes), making a large-appetite immediate rewrite disproportionate; (c) the maintainer's 4-minor-release backward-compat constraint is most naturally satisfied by a phased approach. Option B delivers the highest-value near-term artifact (a documented ownership model) at low risk, and leaves the door open for incremental path migrations.

    Out of Scope (for Option B)

    • Immediate renaming of any existing .specify/<subdir> path
    • Moving integration manifests in this phase
    • Changes to community extension APIs in this phase
    • Automated .gitignore management
    • A specify migrate command (future work)

    Assumptions to Validate

    • Documenting the ownership boundary provides sufficient near-term relief; most users are confused by the absence of documentation, not the absence of filesystem separation.
    • A phased roadmap with a committed endpoint will not slip — requires a tracking issue and milestone.
    • memory/ and assessments/ are unambiguously project-owned and can be first candidates for a future migration phase.

    Posted by GitHub Copilot (model: claude-sonnet-4.6) running the feature-assess pipeline on behalf of @mnriem.

    Generated by 💡 Assess a Feature Request by Installing and Running Spec Kit for issue #2681 · 891.9 AIC · ⌖ 18.3 AIC · ⊞ 35.5K · ◷

  7. github-actions commented on Aug 18, 2026

    @github-actions
    Contributor

    Feature assessment — separate-framework-assets · Stage 5/5: Decision — verdict needs-clarification

    Decision: Separate Spec Kit Framework Assets from Project Memory

    • Slug: separate-framework-assets
    • Decided: 2026-08-18
    • Verdict: needs-clarification
    • Artifacts reviewed: intake.md | research.md | problem.md | concept.md

    Scorecard

    Criterion Rating Justification
    Problem validity adequate Real, coherent problem — mixed ownership under .specify/ creates genuine ambiguity for long-term users. Maintainer affirmed the direction. Single reporter with zero upvotes limits confidence.
    Evidence strength weak Only 1 reporter, 0 upvotes, no usage data or ticket count. Codebase analysis confirms the structural issue exists, but demand signal is too thin to justify a large-appetite refactor. Most user-demand claims are ASSUMPTION-tagged.
    Value vs. inaction adequate Long-term cost of inaction is real (growing ambiguity, inconsistent .gitignore, review friction) but not urgent — no reported breakage, no blocked workflows.
    Feasibility / appetite adequate Option B (documentation + gradual migration) is within a sane medium appetite and implementable without breaking existing projects. Options A/C would be large and high-risk given dozens of hard-coded paths across three script variants.
    Strategic fit adequate Aligns with Spec Kit's goal of supporting professional, long-running projects; maintainer's explicit endorsement confirms strategic alignment.
    Risk posture adequate Option B carries low technical risk. Main risk is under-delivery ("gradual" → "never") — mitigated by requiring a tracked roadmap with a committed endpoint.

    Verdict & Rationale

    needs-clarification. The problem is valid and the maintainer has affirmed its direction, but evidence strength is rated weak — one reporter, zero upvotes, no quantified demand. Per the decide command's downgrade rules, a go requires evidence strength adequate or better; weak evidence mandates needs-clarification. Three specific blocking questions (below) must be resolved before a go is warranted: the release cadence (required to plan a migration timeline), the classification of ambiguous paths like workflows/runs/, and whether there is broader latent demand beyond this single issue. The shaped concept (Option B) is sound and low-risk; the gap is in evidence and planning specifics, not in the idea itself.

    Blocking Questions

    • [NEEDS CLARIFICATION: What is the current release cadence (roughly how long between minor releases)? "4 minor releases" is the backward-compat floor but calendar time is needed to scope any migration roadmap.]
    • [NEEDS CLARIFICATION: How should workflows/runs/ (framework-generated but containing project-specific run history) be classified — framework-managed or project-owned? This boundary question must be resolved before a canonical ownership model can be documented.]
    • [NEEDS CLARIFICATION: Is there broader latent demand beyond this issue? A call for upvotes/+1s or a community survey would move evidence strength from weak to adequate and remove the primary blocker for a go.]

    Revisit stage: research (re-assess demand signal after community input) → define (update ownership classifications with release cadence and boundary decisions).


    Posted by GitHub Copilot (model: claude-sonnet-4.6) running the feature-assess pipeline on behalf of @mnriem.

    Generated by 💡 Assess a Feature Request by Installing and Running Spec Kit for issue #2681 · 891.9 AIC · ⌖ 18.3 AIC · ⊞ 35.5K · ◷

  8. deleted a comment from github-actions on Aug 18, 2026
  9. grafvonb commented on Aug 18, 2026

    @grafvonb
    ContributorAuthor

    Great, thorough analysis. Thanks. This issue shows that Spec Kit is not enterprise-ready. Sad but true.

  10. mnriem commented on Aug 19, 2026

    @mnriem
    Collaborator

    Thanks @grafvonb — glad the assessment was useful, and I appreciate you engaging this deeply.

    I'd gently push back on the conclusion, though. This issue is about one thing: introducing a clearer directory boundary between framework-managed assets and project-authored artifacts under .specify/. That's a real ergonomics and hygiene improvement, and it will absolutely help enterprise adoption — but the absence of that boundary today doesn't make the tool "not enterprise-ready." An organizational refinement isn't the load-bearing definition of enterprise readiness.

    Worth being concrete about what Spec Kit already ships for enterprise use:

    • Catalogs — public and private — configurable catalog sources at project and user scope, with HTTPS enforcement and authenticated, redirect-guarded fetching. Organizations can host their own private/self-hosted catalogs and gate what's installable (install_allowed), rather than depending on the public catalog.
    • Monorepo support — via SPECIFY_INIT_DIR, a member project can be targeted from the monorepo root without cd, and the override applies uniformly across every project-scoped command (integration, extension, workflow, preset, …). One monorepo can host multiple independent .specify/ projects.
    • Bundled core extensions — an assess (idea assessment) and bug (triage) pipeline ship in-box — in fact, this very assessment was produced by the assess extension.
    • Opt-in extensions — e.g. the git branching-workflow extension, with its own configurable behavior, so teams enable only what they need.
    • Catalog + preset + bundle model — presets standardize opinionated configs, bundles distribute curated sets org-wide.
    • Offline install — air-gapped and restricted-network environments are supported.
    • Extensibility with safe lifecycle — first-class extension model with hash-tracked manifests and safe install/uninstall.
    • Workflows — automatable, multi-step processes with three interchangeable script runtimes (sh/ps/py).
    • Backward-compatibility discipline — we hold changes to a ≥4-minor-release window precisely so enterprises can migrate on their own timeline.

    Also worth noting: the assessment's own verdict was needs-clarification, not a rejection — the reservation was thin demand signal (one reporter, zero upvotes), not a structural gap in the product. That's a prioritization question, not an enterprise-readiness verdict.

    So I'd frame it the other way around: this issue describes a potential roadmap for even better enterprise improvements.


    Co-authored with GitHub Copilot (model: Claude Opus 4.8) on behalf of @mnriem.

  11. sean-freeman commented on Sep 11, 2026

    @sean-freeman

    I would be wary of the nomenclature suggested this GH Issue as it currently stands.

    I have been evaluating spec-kit for Enterprise usage, and determined it not ready because the scope focuses fairly specifically on feature-append (does this amazingly) but does not have the conceptual representations for controlling those features pertaining to a higher level, such as:

    • Product level
    • Project level
    • System level
    • Application level
    • Service level (although the /spec/feature contents do map to this)

    For this reason, the GH Issue has significant benefit and merit for Enterprise usage - but I would not blend in the specific suggestions above, such as /system/extensions or /project/memory.


    Compounding to this GH Issue, which I do not see the point raised elsewhere, is scoping correctly to reduce Read Token and Context Window impacts.

    More files / larger files which are stored inside a repo, the wider it's potential footprint (even if during runtime spec-kit attempts to scope to a specific feature).

    The file ownership and structure, would need to carefully reflect separation of content that provides long-term value to the spec-kit initiative. An example of this delineation:

    1. Toolkit files: External to code repo pulled into context when required via defined spec-kit version
    2. Reference SDD files: External to code repo separately generated/controlled and pulled into context when required; contains Product, Project, System, Application, Service conceptual definitions as required + any additional optional content such as additional rules for quality controls (EARS syntax for REQ or NFRs), governance, traceability or other related content such as stakeholder map/objectives etc.
    3. spec-kit/.specify "global" files: Inside repo, the memory as-is and acting "Resident" subset files of the larger "Reference"; via specifications "store" (see OpenSpec, could be another git repo or S3 bucket etc.)\
    4. spec-kit/.specify "feature" files: Inside repo, as-is.

    I acknowledge my POVs likely warrant a separate GH Issue and discussion

    N.B. comment written by human, based upon research by AI Agent comparing multiple SDD Templates and Toolkits

  12. mnriem commented on Sep 14, 2026

    @mnriem
    Collaborator

    Thanks @sean-freeman for explaining your evaluation. I’d like to understand what led you from these particular requirements to the broader conclusion that Spec Kit is not enterprise-ready.

    The published ecosystem already extends beyond feature-by-feature implementation. Our community catalogs currently list 168 extensions, 35 presets, and 2 workflows. More importantly, there are concrete examples relevant to your concerns:

    These are published approaches, not hypothetical future extension points. The core does not need to prescribe every enterprise’s organizational hierarchy for the ecosystem to support enterprise workflows.

    Did your evaluation include these capabilities, or primarily the stock command templates? Could you share one concrete requirement or workflow that remains unsupported after considering the ecosystem—and why it requires a core change rather than an extension, preset, or workflow?

    The ownership and context concerns are worth discussing. I’m asking because a specific unmet requirement gives us something actionable; the blanket readiness conclusion doesn’t tell us what actually prevents adoption in your environment.

    Drafted for @mnriem by GitHub Copilot (model: GPT-6 Astra).

  13. added
    triage-can-waitVerdict: valid and in-scope but deprioritized; held behind the evidence gate
    on Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementfeature-assessRun the Spec Kit idea-assessment pipeline on this feature requestfeature-needs-clarificationFeature assessment verdict: needs clarificationtriage-can-waitVerdict: valid and in-scope but deprioritized; held behind the evidence gate

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions