Skip to content

Conversation

@jstirnaman
Copy link
Contributor

Closes #

Describe your proposed changes here.

Add yarn docs:create command for intelligent content scaffolding:

- Phase 1: Script analyzes draft and repository structure
- Phase 2: Claude command generates file structure and frontmatter
- Phase 3: Script creates files from proposal

New files:
- scripts/docs-create.js: Main orchestration script
- scripts/lib/content-scaffolding.js: Core scaffolding logic
- scripts/lib/file-operations.js: File I/O utilities
- .claude/commands/scaffold-content.md: Claude analysis command

Features:
- Intelligent product detection (Core, Enterprise, Cloud, etc.)
- Generates complete frontmatter
- Dry-run and interactive confirmation modes

Usage:
  yarn docs:create --from path/to/draft.md
  /scaffold-content
  yarn docs:create --execute
Resolved conflicts by keeping enhancements:
- stdin support for draft content
- link extraction and following (local files + external URLs)
- alphabetical product sorting with detected products first
- --from-draft and --follow-external flags
…promptUser

- stdin now requires --products flag with product keys
- removed early return in promptUser() that prevented interactive prompts
- updated help text with stdin + --products examples
- prevents 'No products selected' error when running interactively
- --products now accepts keys from products.yml (influxdb3_core, telegraf, etc.)
- automatically expands multi-version products to all versions
- maintains backwards compatibility with display names
- provides clear error messages with list of valid product keys

Examples:
  --products influxdb3_core
  --products influxdb3_core,influxdb3_enterprise
  --products telegraf
Allows piping prompt to other AI tools or saving to file:
  yarn docs:create --print-prompt draft.md > prompt.txt
  yarn docs:create --print-prompt draft.md | llm -m gpt-4

The flag:
- Prepares context and selects products
- Generates the full AI prompt
- Outputs to stdout and exits
- Works with both URL-based and draft-based workflows
When running outside Claude Code, script now outputs prompt file path
to stdout by default (or prompt text with --print-prompt flag).
This enables integration with external AI tools without requiring flags.

Inside Claude Code, script continues to run Task() agent automatically.

Changes:
- Add isClaudeCode() detection function
- Add outputPromptForExternalUse() helper
- Add PROMPT_FILE constant for .tmp/scaffold-prompt.txt
- Update both URL-based and draft-based workflows
- Update help text with environment-aware behavior examples
Change log() function to use console.error instead of console.log.
This ensures that when stdout is piped (e.g., to 'code -'), only
the prompt file path is sent through the pipe, while progress
messages remain visible on the terminal via stderr.

Usage:
  echo 'content' | yarn --silent docs:create --products X | code -
Major improvements to docs:create UX for both Claude Code and external tool integration:

**New `docs` CLI command:**
- Add scripts/docs-cli.js - main CLI with subcommand routing
- Add bin field to package.json for `docs` command
- Usage: `docs create` and `docs edit` (cleaner than yarn commands)

**Smart piping detection:**
- Auto-detect when stdout is piped (\!process.stdout.isTTY)
- When piping: automatically output prompt text (no flag needed)
- When interactive: output prompt file path
- --print-prompt flag now optional (auto-enabled when piping)

**Updated help text:**
- Show `docs create` syntax first, yarn as alternative
- Simplify examples with new CLI
- Document smart piping behavior
- Focus on two main workflows: Claude Code vs external agents

**Usage examples:**
  # Inside Claude Code - automatic execution
  docs create drafts/new-feature.md

  # Pipe to external AI - prompt auto-detected
  docs create FILE --products X | claude -p
  docs create FILE --products X | copilot -p

  # Pipe from stdin
  echo 'content' | docs create --products X | claude -p

Benefits:
- Cleaner syntax (no yarn --silent needed)
- No manual --print-prompt flag when piping
- Consistent with industry tools (git, npm, etc.)
- Backward compatible with yarn commands
- Cleaner interface works better for piping output to agents and downstream utilities
- Updates README.md and other authoring docs

This repository includes a `docs` CLI tool for common documentation workflows:

```sh
npx docs create drafts/new-feature.md --products influxdb3_core

npx docs edit https://docs.influxdata.com/influxdb3/core/admin/

npx docs placeholders content/influxdb3/core/admin/upgrade.md

npx docs --help
```
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