Skip to content

Commit 33cfd4d

Browse files
committed
fix: remove Gateway requirement
1 parent d5a10f5 commit 33cfd4d

12 files changed

Lines changed: 627 additions & 419 deletions

File tree

README.md

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -214,16 +214,6 @@ specify init my-project --git-platform github
214214
specify init my-project --git-platform gitlab
215215
```
216216

217-
#### Gateway Configuration
218-
219-
```bash
220-
# Configure central LLM gateway
221-
specify init my-project --gateway-url https://proxy.internal --gateway-token $TOKEN
222-
223-
# Suppress gateway warnings
224-
specify init my-project --gateway-suppress-warning
225-
```
226-
227217
#### Advanced Options
228218

229219
```bash
@@ -309,9 +299,7 @@ specify init my-project \
309299
--script sh \
310300
--team-ai-directives https://github.com/your-org/team-ai-directives.git \
311301
--issue-tracker github \
312-
--async-agent jules \
313-
--gateway-url https://proxy.internal \
314-
--gateway-token $TOKEN
302+
--async-agent jules
315303
```
316304

317305
### 2. Establish project principles
@@ -419,9 +407,6 @@ The `specify` command supports the following options:
419407
| `--issue-tracker` | Option | Issue tracker MCP: `github`, `jira`, `linear`, `gitlab` |
420408
| `--async-agent` | Option | Async agent MCP: `jules`, `async-copilot`, `async-codex` |
421409
| `--git-platform` | Option | Git platform MCP for PR operations: `github`, `gitlab` |
422-
| `--gateway-url` | Option | Central LLM gateway URL |
423-
| `--gateway-token` | Option | Gateway authentication token |
424-
| `--gateway-suppress-warning` | Flag | Suppress gateway warning messages |
425410
| `--spec-sync` | Flag | Enable automatic spec-code synchronization (keeps specs/*.md files updated with code changes) |
426411

427412
### `/mode` Arguments & Options
@@ -491,11 +476,8 @@ specify init my-project --ai claude --team-ai-directives https://github.com/your
491476
# Initialize with async agent support for autonomous task execution
492477
specify init my-project --ai claude --async-agent jules
493478

494-
# Initialize with central LLM gateway configuration
495-
specify init my-project --ai claude --gateway-url https://proxy.internal --gateway-token $TOKEN
496-
497479
# Complex example: Enterprise setup with all integrations
498-
specify init enterprise-app --ai claude --script sh --team-ai-directives https://github.com/company/team-ai-directives.git --issue-tracker jira --async-agent jules --gateway-url https://llm-gateway.company.com --gateway-token $GATEWAY_TOKEN --github-token $GH_TOKEN
480+
specify init enterprise-app --ai claude --script sh --team-ai-directives https://github.com/company/team-ai-directives.git --issue-tracker jira --async-agent jules --github-token $GH_TOKEN
499481

500482
# Check system requirements
501483
specify check

docs/installation.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,6 @@ uvx --from git+https://github.com/github/agentic-sdlc-spec-kit.git specify init
101101
uvx --from git+https://github.com/github/agentic-sdlc-spec-kit.git specify init <project_name> --async-agent async-codex
102102
```
103103

104-
### Configure Central LLM Gateway
105-
106-
Set up proxy configuration for centralized AI model access:
107-
108-
```bash
109-
uvx --from git+https://github.com/github/agentic-sdlc-spec-kit.git specify init <project_name> --gateway-url https://proxy.internal --gateway-token $TOKEN
110-
```
111-
112104
## Verification
113105

114106
After initialization, you should see the following commands available in your AI agent:

roadmap.md

Lines changed: 42 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
### **CLI Infrastructure & Theming**
66

77
-**Orange Theme Restoration**: Centralized `ACCENT_COLOR` and `BANNER_COLORS` constants in CLI
8-
- **Gateway Configuration**: `--gateway-url`/`--gateway-token` support with `.specify/config/gateway.env` scaffolding
8+
- ~~**Gateway Configuration**~~: Removed in favor of direct agent-based configuration and MCP server integration
99
-**Team Directives Integration**: Local path support and remote cloning for team-ai-directives
1010
-**Context Readiness Enforcement**: `/specify`, `/plan`, `/tasks`, `/implement` validate `context.md` completeness
1111

@@ -132,14 +132,47 @@
132132
-**Smart Trace Validation**: Enhanced `/analyze` claims trace detection but implementation not found
133133
-**Task-to-Issues Command**: Template exists but actual implementation script missing
134134

135+
### **Architecture Description (AD) Mode** *(0% Complete)* - **HIGH PRIORITY** - Enterprise Architecture Support
136+
137+
-**CLI Config Update**: Add `ad` to `mode_defaults` in `src/specify_cli/__init__.py` with all options enabled by default.
138+
-**Architecture Templates**: Create `templates/architecture-template.md` (Global V&P Context) and `templates/plan-template-ad.md` (Feature V&P Zoom-in).
139+
-**Architect Command**: Create `templates/commands/architect.md` for generating the global `memory/architecture.md`.
140+
-**Setup Scripts**: Create `scripts/bash/setup-architecture.sh` and `scripts/powershell/setup-architecture.ps1`.
141+
-**Plan Script Updates**: Update `scripts/bash/setup-plan.sh` and `scripts/powershell/setup-plan.ps1` to detect `ad` mode and use the new templates.
142+
-**Mode Documentation**: Update `templates/commands/mode.md` to include AD mode description.
143+
-**Codebase Mapper**: Implement `/map` command to scan existing code and auto-populate `memory/architecture.md` (Context View) and `memory/tech-stack.md`. Essential for Brownfield projects (legacy code analysis and documentation).
144+
135145
#### **Strategic Tooling Improvements** *(30% Complete)* - **MEDIUM PRIORITY**
136146

137147
-**Gateway Health Checks**: Only basic configuration exists, no health check implementation
138148
-**Tool Selection Guidance**: Claims implementation but no actual guidance logic found
149+
-**Global Configuration Support**: Implement hierarchical config loading (Local `.specify/config/config.json` overrides Global `~/.config/specify/config.json`).
150+
-**CLI Config Refactor**: Update `src/specify_cli/__init__.py` to use `platformdirs` for XDG-compliant global path resolution and deep merging logic.
151+
-**Script Config Resolution**: Update `common.sh` and `common.ps1` helper functions to check global paths if local config is missing values.
139152
-**Config Consolidation**: Successfully implemented as single unified configuration file to reduce complexity and improve maintainability
153+
-**Atomic Commits Config**: Add `atomic_commits` boolean option to `config.json` (default: `false`). Externalize as global configuration available to all workflow modes (build/spec/ad) with per-mode override capability.
154+
-**Execution Logic**: Update `scripts/bash/tasks-meta-utils.sh` and `scripts/powershell/common.ps1` to read `atomic_commits` config and inject constraint into `generate_delegation_prompt()` when enabled.
140155

141156
**NOTE**: User settings like `config.json` should remain user-specific and not tracked in git. However, team governance files like `.specify/constitution.md` should be version-controlled. Consider relocating constitution.md to a more appropriate location that clearly distinguishes it from user-specific configuration.
142157

158+
#### **Build Mode "GSD" Upgrade** *(0% Complete)* - **HIGH PRIORITY** - High-velocity execution mode
159+
160+
-**GSD Defaults**: Update `src/specify_cli/__init__.py` to set `atomic_commits: true` by default specifically for `build` mode (while keeping it `false` for `spec` and `ad` modes).
161+
-**Senior Engineer Templates**: Overhaul `templates/spec-template-build.md` and `templates/plan-template-build.md` to use the "Senior Engineer" persona (brief, technical, imperative) and remove all "filler" sections (motivation, context narrative, etc.).
162+
-**No-Verify Logic**: Update `implement` scripts (`scripts/bash/implement.sh` and `scripts/powershell/implement.ps1`) to skip the "Micro-Review" step when in `build` mode (trusted execution), relying solely on Atomic Commit verification for quality assurance.
163+
-**Documentation**: Update `templates/commands/mode.md` to rebrand Build Mode as "GSD Mode: High velocity, atomic commits, minimal documentation."
164+
165+
#### **Context Intelligence & Optimization** *(0% Complete)* - **MEDIUM PRIORITY** - Smart context management and compliance validation
166+
167+
-**Directives Scanner**: Create `scripts/bash/scan-directives.sh` (and ps1) to list all available assets in `team-ai-directives` as JSON.
168+
-**Silent Context Injection**: Update `/speckit.specify` to run the scanner and *silently* populate `context.md` with relevant Directives based on the user prompt (no user interaction required).
169+
-**Compliance Gate**: Update `/speckit.clarify` to validate the generated Spec against the Directives in `context.md` and pause ONLY if contradictions are found.
170+
171+
#### **Workflow Utilities** *(0% Complete)* - **MEDIUM PRIORITY** - Specialized workflow commands for focused development
172+
173+
-**Systematic Debugging**: Implement `/debug` command with a "Scientific Method" workflow (Symptoms -> Hypothesis -> Test) that runs in a persistent session.
174+
-**Idea Backlog**: Implement `/todo` command to capture out-of-context ideas to a separate list without derailing the current active task.
175+
143176
#### **Persistent Issue ID Storage Enhancement** *(0% Complete)* - **HIGH PRIORITY** - Issue-tracker-first workflow improvement
144177

145178
-**Add --issue Parameter to Specify**: Implement `--issue ISSUE-ID` parameter for specify command to fetch issue data from configured tracker
@@ -148,13 +181,6 @@
148181
-**Dynamic MCP Tool Resolution**: Use declarative tools pattern with configuration-driven tool selection based on detected issue tracker
149182
-**Multi-Tracker Support**: Support GitHub/Jira/Linear/GitLab issue formats with appropriate MCP tool routing
150183

151-
#### **Context.md Population Bug Fix** *(0% Complete)* - **HIGH PRIORITY** - Critical workflow blocker
152-
153-
-**Modify Specify Command Context Generation**: Update `/specify` command to populate `context.md` with derived values instead of `[NEEDS INPUT]` placeholders
154-
-**Context Field Population**: Generate Feature, Mission, Code Paths, Directives, Research, and Gateway fields from feature description and project context
155-
-**Mode-Aware Context**: Implement for both build and spec modes as integral part of specify command
156-
-**Validation Compliance**: Ensure populated context.md passes `check-prerequisites.sh` validation requirements
157-
158184
#### **Levelup Command Build Mode Compatibility** *(0% Complete)* - **HIGH PRIORITY** - AI session context management blocker
159185

160186
-**Make Levelup Mode-Aware**: Update `/levelup` command to work in both build and spec modes
@@ -248,28 +274,6 @@
248274
- **Implementation**: Add to Factor X with hook templates and activation rules, extending the current AGENTS.md framework
249275
- **Reference**: Based on patterns from <https://github.com/diet103/claude-code-infrastructure-showcase>
250276

251-
### **Progressive Context Disclosure (500-Line Rule)** *(0% Complete)* - **MEDIUM PRIORITY** - Enhances Factor II Context Scaffolding
252-
253-
- **Description**: Implement modular context loading patterns where AI context is loaded progressively rather than all at once, preventing token limit issues while maintaining comprehensive guidance. Similar to Claude's skill architecture with main files + resource files.
254-
- **Key Components**:
255-
- Hierarchical agent context files (overview + detailed resources)
256-
- On-demand context expansion based on task complexity
257-
- Token-aware context management for different agent types
258-
- **Benefits**: Manages context limits effectively across all supported agents, provides scalable context management
259-
- **Implementation**: Extend Factor II with progressive loading patterns, building on existing update-agent-context.sh infrastructure
260-
- **Reference**: Based on patterns from <https://github.com/diet103/claude-code-infrastructure-showcase>
261-
262-
### **Session Context Persistence Patterns** *(50% Complete)* - **LOW PRIORITY** - Supports Factor IX Process Documentation
263-
264-
- **Description**: Enhance the existing dev docs patterns with auto-generation and session persistence, using structured file formats to maintain project context across AI tool sessions and prevent context resets.
265-
- **Key Components**:
266-
- Auto-generation of three-file structure (plan.md, context.md, tasks.md) from session artifacts
267-
- Session state preservation across agent interactions
268-
- Integration with existing levelup command for comprehensive session capture
269-
- **Benefits**: Reduces context loss during complex development sessions, improves handoff between different AI agents
270-
- **Implementation**: Enhance Factor IX with auto-generation templates, building on existing levelup.md and agent context patterns
271-
- **Reference**: Based on patterns from <https://github.com/diet103/claude-code-infrastructure-showcase>
272-
273277
### **Agent Skill Modularization** *(0% Complete)* - **LOW PRIORITY** - Extends Factor XI Directives as Code
274278

275279
- **Description**: Implement modular agent skill patterns where complex agent capabilities are broken into smaller, reusable skill modules that can be loaded progressively, similar to Claude's skill architecture.
@@ -390,12 +394,14 @@
390394
|**Enhanced Traceability**|60%|⚠️ Partially Complete|
391395
|**Multi-Tracker Task-to-Issues**|0%|🔄 Current Phase|
392396
|**Strategic Tooling**|30%|⚠️ Partially Complete|
397+
|**Build Mode "GSD" Upgrade**|0%|🔄 Current Phase|
398+
|**Context Intelligence & Optimization**|0%|🔄 Current Phase|
399+
|**Workflow Utilities**|0%|🔄 Current Phase|
393400
|**Build Mode Bug Fix**|0%|🔄 Current Phase|
394401
|**Async Context Delivery**|0%|🔄 Current Phase|
395402
|**Spec Management**|0%|🔄 Current Phase|
396403
|**Hook-Based Tool Auto-Activation**|0%|🆕 Future Phase|
397404
|**Progressive Context Disclosure**|0%|🆕 Future Phase|
398-
|**Session Context Persistence**|50%|🆕 Future Phase|
399405
|**Agent Skill Modularization**|0%|🆕 Future Phase|
400406
|**Agent Testing Infrastructure**|0%|🆕 Future Phase|
401407
|**GitHub Issues Enhancement**|0%|🆕 Future Phase|
@@ -438,10 +444,11 @@
438444
4. **HIGH**: Build mode workflow bug fix (0% → 100%) - Critical workflow blocker preventing build mode usage
439445
5. **HIGH**: Levelup command build mode compatibility (0% → 100%) - AI session context management blocker
440446
6. **HIGH**: Persistent issue ID storage enhancement (0% → 100%) - Issue-tracker-first workflow improvement
441-
7. **MEDIUM**: Strategic tooling improvements (30% → 100%) - Tool health, guidance, and config consolidation
442-
8. **MEDIUM**: Multi-tracker task-to-issues extension (0% → 100%) - Enhanced traceability across platforms
443-
9. **MEDIUM**: Unified spec template implementation (100% → 100%) - Template maintenance reduction
444-
10. **MEDIUM**: Spec management & cleanup (0% → 100%) - Workflow maintenance
447+
7. **HIGH**: Architecture Description (AD) Mode (0% → 100%) - Enterprise Architecture Support
448+
8. **MEDIUM**: Strategic tooling improvements (30% → 100%) - Tool health, guidance, and config consolidation
449+
9. **MEDIUM**: Multi-tracker task-to-issues extension (0% → 100%) - Enhanced traceability across platforms
450+
10. **MEDIUM**: Unified spec template implementation (100% → 100%) - Template maintenance reduction
451+
11. **MEDIUM**: Spec management & cleanup (0% → 100%) - Workflow maintenance
445452

446453
**🆕 FUTURE PHASE (Complete After Current Phase):**
447454
9. **HIGH**: Architecture Description Command (/architect) (0% → future consideration)

scripts/bash/check-prerequisites.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ fi
253253

254254
if grep -q "\[NEEDS INPUT\]" "$CONTEXT"; then
255255
echo "ERROR: context.md contains unresolved [NEEDS INPUT] markers." >&2
256-
echo "Update $CONTEXT with current mission, code paths, directives, research, and gateway details before proceeding." >&2
256+
echo "Update $CONTEXT with current mission, code paths, directives, and research details before proceeding." >&2
257257
exit 1
258258
fi
259259

scripts/bash/common.sh

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,6 @@
44
# Shared constants
55
TEAM_DIRECTIVES_DIRNAME="team-ai-directives"
66

7-
# Load gateway configuration and export helper environment variables
8-
load_gateway_config() {
9-
local config_dir=".specify/config"
10-
local config_file="$config_dir/config.json"
11-
12-
if [[ -f "$config_file" ]] && command -v jq >/dev/null 2>&1; then
13-
# Read gateway config from consolidated config
14-
SPECIFY_GATEWAY_URL=$(jq -r '.gateway.url // empty' "$config_file" 2>/dev/null)
15-
SPECIFY_GATEWAY_TOKEN=$(jq -r '.gateway.token // empty' "$config_file" 2>/dev/null)
16-
SPECIFY_SUPPRESS_GATEWAY_WARNING=$(jq -r '.gateway.suppress_warning // false' "$config_file" 2>/dev/null)
17-
18-
# Export token if set
19-
if [[ -n "$SPECIFY_GATEWAY_TOKEN" ]]; then
20-
export SPECIFY_GATEWAY_TOKEN
21-
fi
22-
fi
23-
24-
if [[ -n "${SPECIFY_GATEWAY_URL:-}" ]]; then
25-
export SPECIFY_GATEWAY_URL
26-
export SPECIFY_GATEWAY_ACTIVE="true"
27-
[[ -z "${ANTHROPIC_BASE_URL:-}" ]] && export ANTHROPIC_BASE_URL="$SPECIFY_GATEWAY_URL"
28-
[[ -z "${GEMINI_BASE_URL:-}" ]] && export GEMINI_BASE_URL="$SPECIFY_GATEWAY_URL"
29-
[[ -z "${OPENAI_BASE_URL:-}" ]] && export OPENAI_BASE_URL="$SPECIFY_GATEWAY_URL"
30-
else
31-
export SPECIFY_GATEWAY_ACTIVE="false"
32-
if [[ "$SPECIFY_SUPPRESS_GATEWAY_WARNING" != "true" ]]; then
33-
echo "[specify] Warning: Gateway URL not configured. Set gateway.url in .specify/config/config.json." >&2
34-
fi
35-
fi
36-
}
37-
387
load_team_directives_config() {
398
local repo_root="$1"
409

@@ -181,7 +150,6 @@ find_feature_dir_by_prefix() {
181150

182151
get_feature_paths() {
183152
local repo_root=$(get_repo_root)
184-
load_gateway_config "$repo_root"
185153
load_team_directives_config "$repo_root"
186154
local current_branch=$(get_current_branch)
187155
local has_git_repo="false"

scripts/bash/create-new-feature.sh

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,6 @@ populate_context_file() {
351351
local code_paths="To be determined during implementation"
352352
local directives="None (build mode)"
353353
local research="Minimal research needed for lightweight implementation"
354-
local gateway="None (build mode)"
355354
else
356355
# Spec mode: Comprehensive context for full specification
357356
# Detect code paths (basic detection based on common patterns)
@@ -373,16 +372,6 @@ populate_context_file() {
373372

374373
# Set research needs
375374
local research="To be identified during specification and planning phases"
376-
377-
# Read gateway configuration if available
378-
local gateway="None"
379-
local config_file="$REPO_ROOT/.specify/config/config.json"
380-
if [ -f "$config_file" ]; then
381-
local gateway_url=$(grep -o '"url"[[:space:]]*:[[:space:]]*"[^"]*"' "$config_file" 2>/dev/null | cut -d'"' -f4)
382-
if [ -n "$gateway_url" ]; then
383-
gateway="$gateway_url"
384-
fi
385-
fi
386375
fi
387376

388377
# Create context.md with populated values
@@ -394,7 +383,6 @@ populate_context_file() {
394383
**Code Paths**: $code_paths
395384
**Directives**: $directives
396385
**Research**: $research
397-
**Gateway**: $gateway
398386
399387
EOF
400388
}

scripts/bash/setup-plan.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ fi
6262

6363
if grep -q "\[NEEDS INPUT\]" "$CONTEXT_FILE"; then
6464
echo "ERROR: context.md contains unresolved [NEEDS INPUT] markers." >&2
65-
echo "Please update $CONTEXT_FILE with mission, code paths, directives, research, and gateway details before proceeding." >&2
65+
echo "Please update $CONTEXT_FILE with mission, code paths, directives, and research details before proceeding." >&2
6666
exit 1
6767
fi
6868

scripts/bash/spec-hooks-install.sh

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,6 @@ function create_config {
155155
"pending": [],
156156
"processed": []
157157
}
158-
},
159-
"gateway": {
160-
"url": null,
161-
"token": null,
162-
"suppress_warning": false
163158
}
164159
}
165160
EOF

0 commit comments

Comments
 (0)