-
Notifications
You must be signed in to change notification settings - Fork 52
Open
Description
Summary
The ambient.json workflow configuration schema includes fields that are documented but not implemented in the platform:
startupPrompt- Workflow greeting message (documented as required)results- Artifact location patterns (documented as optional)
Reference: AMBIENT_JSON_SCHEMA.md
Current State
What the platform actually implements:
| Field | Documented | Platform Implementation |
|---|---|---|
name |
Required | ✅ Read (logging/metadata only) |
description |
Required | ✅ Read (backend metadata) |
systemPrompt |
Required | ✅ Used (injected into Claude's context) |
startupPrompt |
Required | ❌ Not implemented |
results |
Optional | ❌ Not implemented |
The workaround
Workflow authors work around this by including instructions in systemPrompt that tell the agent to read .ambient/ambient.json using the Read tool. This makes the fields "accessible" but:
- Wastes tokens (platform already loaded the file)
- Fragile (depends on agent following instructions)
- No UI integration (frontend can't use
resultsfor artifact discovery) - Indirect (platform has the data but doesn't use it)
Proposed Implementation
1. startupPrompt support
In components/runners/claude-code-runner/adapter.py:
ambient_config = self._load_ambient_config(cwd_path)
# Send workflow greeting as first message (if not a continuation)
if ambient_config.get('startupPrompt') and not is_continuation:
# Send as initial assistant message or first prompt
pass2. results support
Options:
- Frontend artifact discovery: Expose patterns to UI for showing generated files
- Session completion summary: Use patterns to list outputs in status
- Inject into system prompt: So agent knows where to write without re-reading config
3. Update Go backend struct
In components/backend/handlers/content.go:
type AmbientConfig struct {
Name string `json:"name"`
Description string `json:"description"`
SystemPrompt string `json:"systemPrompt"`
ArtifactsDir string `json:"artifactsDir"`
StartupPrompt string `json:"startupPrompt"` // NEW
Results map[string]string `json:"results"` // NEW
}Relevant Code Locations
- Python loader:
components/runners/claude-code-runner/adapter.py:1691(_load_ambient_config) - Go struct:
components/backend/handlers/content.go:716(AmbientConfig) - Design doc:
docs/design/session-initialization-flow.md(mentionsstartupPromptin pseudocode)
Acceptance Criteria
-
startupPromptsent as greeting when workflow activates (not on continuation) -
resultspatterns available to frontend for artifact discovery - Update
docs/reference/index.mdto document actual implementation - Add schema validation or at least warning for missing required fields
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels