Skip to content

Question: How do I set guidance at project level. Example: Kiro Steering Docs, Spec Kit Constitution #234

Closed

Description

@harikrishnan83

Hello Team,

First of all, congrats on all the traction this repo has been receiving. And I am thoroughly enjoying how fast the workflow is in OpenSpec.

Just a question on how to setup project level Non Negotiable Aspects, Architectural Style etc. which I quite like in GitHub Spec Kit Constitution and Kiro Steering Docs. Tried going through the docs fully, however I did not find anything on similar lines. Do correct me if I am looking for the wrong feature (since this may already be covered in setting up the overall spec).

Thanks.

Activity

  1. harikrishnan83 commented on Oct 23, 2025

    @harikrishnan83
    ContributorAuthor

    I am guessing below line which we run after init, is the equivalent for setup guidance and convention. CMIIW.

    Please read openspec/project.md and help me fill it out with details about my project, tech stack, and conventions

  2. TabishB commented on Oct 23, 2025

    @TabishB
    Contributor

    Hey @harikrishnan83

    Yep there's a openspec/project.md that you can populate that acts similarly to kiro's steering. Though to be honest, I did lots of testing with and without the steering doc and I found that it usually makes minimal difference in how the agent performs.

    Usually the agentic search using ripgrep, glob, ls is usually good enough for an agent to be able to navigate and understand the repository. Hence maybe why I haven't placed a similar level of enough of emphasis on the project doc.

  3. harvzor commented on Mar 3, 2026

    @harvzor

    The issue is old, but project.md has been deprecated in favour of config.yaml:

    **`openspec/project.md`** — This file isn't deleted automatically because it may contain project context you've written. You'll need to:
    1. Review its contents
    2. Move useful context to `openspec/config.yaml` (see guidance below)
    3. Delete the file when ready
    **Why we made this change:**
    The old `project.md` was passive—agents might read it, might not, might forget what they read. We found reliability was inconsistent.
    The new `config.yaml` context is **actively injected into every OpenSpec planning request**. This means your project conventions, tech stack, and rules are always present when the AI is creating artifacts. Higher reliability.
    **The tradeoff:**
    Because context is injected into every request, you'll want to be concise. Focus on what really matters:
    - Tech stack and key conventions
    - Non-obvious constraints the AI needs to know
    - Rules that frequently got ignored before
    Don't worry about getting it perfect. We're still learning what works best here, and we'll be improving how context injection works as we experiment.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions