Skip to content

feat: add neutral team directives scaffold command#104

Draft
or-yam wants to merge 1 commit into
tikalk:mainfrom
or-yam:feat/team-directives-init
Draft

feat: add neutral team directives scaffold command#104
or-yam wants to merge 1 commit into
tikalk:mainfrom
or-yam:feat/team-directives-init

Conversation

@or-yam

@or-yam or-yam commented Jul 19, 2026

Copy link
Copy Markdown

Description

Spec Kit can consume a team-ai-directives knowledge base, but it provides no neutral way to create one. New teams must either invent the repository contract themselves or clone Tikal's populated directives and delete organization-specific content.

This PR adds specify team-directives init [PATH] [--name NAME], a standalone command that creates a structurally valid but policy-empty knowledge base. The default destination is ./team-ai-directives; the command derives the manifest name from the directory unless --name is provided.

The generated scaffold includes:

  • manifest.yml with schema, repository version, owner, compatibility, and creation metadata
  • Neutral README.md and AGENTS.md guidance
  • An explicitly empty constitution and CDR index
  • Empty skill and MCP registries compatible with current consumers
  • Tracked directories for rules, personas, examples, and skills

The filesystem service accepts absent or existing empty destinations, rejects files, symlinks, and non-empty directories, and removes files and directories created by an interrupted or failed scaffold operation. It deliberately does not initialize Git, define team policy, or attach the knowledge base to a Spec Kit project.

The CLI advertises the new capability through specify version --features, and the fork version is bumped to 0.12.15+adlc10. README, quickstart, command reference, changelog, and fork history document the creation and consumption workflow.

Why this shape

Creation and project consumption remain separate operations: team-directives init owns only the knowledge-base files, while specify init --team-ai-directives continues to own project integration. This keeps project initialization small and preserves the existing opt-in Git behavior.

The empty .skills.json contains default, skills, and external keys because current consumers read different portions of the registry. It does not attempt to resolve the broader pre-existing schema inconsistency between skill browsing and repair commands.

Testing

  • Tested locally with uv run specify --help
  • Ran existing tests with uv sync && uv run pytest
  • Tested with a sample project (if applicable)

Validation performed:

  • 25 focused scaffold, command registration, and capability tests pass.
  • Ruff lint, Ruff format check, Python compilation, and git diff --check pass.
  • A generated scaffold was consumed successfully by a real specify init --team-ai-directives project initialization.
  • A wheel was built, installed into a clean temporary virtual environment, and used to create a scaffold.
  • The full suite completed with 4477 passed and 142 skipped. The capability fixture failure found by that run was fixed and now passes. One unrelated Git-extension test still assumes git init creates master; it fails when the environment defaults to main and passes when init.defaultBranch=master is supplied.
  • The generic source-distribution build remains blocked by the existing missing workflows/speckit force-include; wheel-only packaging succeeds.
  • All generated QA repositories, wheels, and temporary virtual environments were removed.

AI Disclosure

  • I did not use AI assistance for this contribution
  • I did use AI assistance (describe below)

Implemented, tested, reviewed, and documented with OpenCode using openai/gpt-5.6-sol, operating autonomously under human direction.

Assisted-by: OpenCode (model: gpt-5.6-sol, autonomous)
@kanfil

kanfil commented Jul 20, 2026

Copy link
Copy Markdown
Member

@or-yam isn't it better to add it to the team-ai-directive extension as a command named init? What are the benefits in the CLI from your side ?

@or-yam

or-yam commented Jul 20, 2026

Copy link
Copy Markdown
Author

@or-yam isn't it better to add it to the team-ai-directive extension as a command named init? What are the benefits in the CLI from your side ?

I think initializing a team-ai-directives repository should be separate from the extension.

Extension commands are agent-executed prompts and are only available after initializing a Spec Kit project and installing the extension. This command may need to bootstrap the team-ai-directives repository before either exists.

Keeping the filesystem operation in the CLI also makes it deterministic and repeatable.

The clean split, in my opinion:

  • Extension for AI-assisted flows
  • CLI for deterministic scaffolding and setup

@kanfil

kanfil commented Jul 20, 2026 via email

Copy link
Copy Markdown
Member

@or-yam

or-yam commented Jul 20, 2026

Copy link
Copy Markdown
Author

I think I get it now.

So, the extension will own the repo initialization as well.
I’m thinking of adding a /team.init command or skill that gathers the setup details and invokes a deterministic extension-owned script. The script would accept an absent or empty directory, create the required scaffold, and configure the extension.

Or, we could extend the --team-ai-directives to accept empty folder to init from.

kanfil added a commit to tikalk/adlc-team-skills that referenced this pull request Jul 21, 2026
manifest.yml was orphaned metadata from an abandoned draft PR
(tikalk/agentic-sdlc-spec-kit#104) — never consumed by any agent
or script. Removing it simplifies the scaffold from 11 to 10 files.

Mode 3 default path changed from ./.adlc/team-ai-directives to
current directory so users scaffold in-place by default.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants