Skip to content

docs: add initial prompt and Claude Code configuration - #1

Closed
nsheaps wants to merge 148 commits into
mainfrom
claude/ai-3d-model-generator-XjoUi
Closed

nsheaps wants to merge 148 commits into
mainfrom
claude/ai-3d-model-generator-XjoUi

Conversation

@nsheaps

@nsheaps nsheaps commented May 21, 2026

Copy link
Copy Markdown
Owner

Summary

Establish the foundational documentation and Claude Code configuration for the farish project—an AI-powered 3D model generator with social features. This commit captures the complete initial prompt that defines the project vision, implementation strategy, and development workflow, along with the necessary Claude Code settings and hooks to support autonomous development.

Key Changes

  • docs/INITIAL_PROMPT.md: Complete verbatim prompt documenting the project vision, requirements, and 37-step implementation roadmap. Includes notes on environment constraints and development branch information.

  • .claude/rules/always-keep-improving.md: Comprehensive rules governing development practices, including:

    • Emphasis on iterative improvement and skill/agent usage
    • Atomic commits with conventional style
    • Script organization and monorepo tooling requirements
    • Citation requirements for all claims
    • Configuration management priorities (hooks → skills → agents → scripts → rules)
  • .claude/settings.json: Claude Code configuration declaring:

    • Custom marketplaces (nsheaps/agents, nsheaps/ai-mktpl)
    • 14 enabled plugins for development automation (scm-utils, mise, github, sequential-thinking, etc.)
    • Bypass permissions mode for autonomous operation
    • SessionStart hook for environment onboarding
  • .claude/hooks/session-start.sh: Idempotent shell script that:

    • Installs pinned tool versions via mise
    • Installs workspace dependencies via bun
    • Guards each step by manifest presence for forward compatibility
  • .claude/skills/plugin-marketplace-setup/SKILL.md: Documentation for managing Claude Code plugin marketplaces and plugins, clarifying authentication behavior and installation scope requirements.

Notable Details

  • The initial prompt is preserved as a reference document to be reviewed before, during, and after every task to ensure progress alignment.
  • The session-start hook is designed to be forward-looking: it will automatically activate installation steps as the monorepo is scaffolded (mise.toml, package.json, etc.) without requiring edits.
  • Plugin installation uses project scope (committed to .claude/settings.json) rather than local scope to ensure persistence across sessions.
  • The rules emphasize autonomous operation with /goal and /loop mechanisms, deferring human interaction until API keys are required.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p

claude added 30 commits May 21, 2026 02:19
Verbatim capture of the prompt that started the farish project, plus
kickoff notes (target repo, dev branch, environment constraints). Per
.claude/rules/always-keep-improving.md this file is reviewed before,
during, and after every task.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Register the agents and ai-mktpl marketplaces plus 15 enabled plugins,
set bypassPermissions as the default permission mode, and add a
SessionStart hook (.claude/hooks/session-start.sh) that onboards web
sessions by installing the toolchain and dependencies once their
manifests exist.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Captures how to install Claude Code marketplaces and plugins for this
repo, including that the claude plugin CLI authenticates through the
local git proxy and can access private nsheaps repos (whereas a
sub-agent's WebFetch cannot).

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Establishes the project's working discipline: review INITIAL_PROMPT.md
each task, commit config/skill/hook changes immediately, atomic
conventional commits, the behavior-modification priority order
(hooks > skills > agents > scripts > rules), and the recurring
audit-verify-improve cycle.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Capture six requirements the user added after the original prompt:
repo-config-as-code via the repository-settings app, Renovate extending
nsheaps/renovate-config, Vercel (free plan) for any backend, awareness
of nsheaps/.github cross-repo sync, PR dry-run CI gating, and Mermaid
diagrams in documentation. Also logs the task-utils write-gate
incompatibility with Claude Code on the web.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Set TASK_UTILS_REQUIRE_TASK=0 so the task-utils require-task-in-progress
hook does not block Write/Edit tools in this environment, where the
TaskCreate/TaskUpdate tools are not enabled. The hook honors this opt-out
as of task-utils v0.1.1 (nsheaps/agents).

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Confirms Claude Code marketplace sources cannot be pinned to a non-default
branch — the ref field in extraKnownMarketplaces is silently ignored.
Documents the marketplace-source vs plugin-source distinction and the
merge-to-main workaround.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Set CLAUDE_CODE_ENABLE_TASKS, CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH,
CLAUDE_AUTO_BACKGROUND_TASKS, CLAUDE_CODE_DISABLE_CRON=0,
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=0, CLAUDE_CODE_EXIT_AFTER_STOP_DELAY,
and FORCE_AUTOUPDATE_PLUGINS so the next session can use the Task tools,
background tasks/cron, and forced plugin auto-update.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Compile the farish site's page inventory into docs/pages/INDEX.md
(prompt steps 5-7): 11 pages across Discover/Create/Account/System, each
tagged browser-only vs backend-dependent, with a Mermaid sitemap. Search
folded into Explore on review; no separate onboarding or login page.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Create an empty docs/pages/<slug>/SPEC.md for each of the 11 pages in
docs/pages/INDEX.md (prompt step 8). Files are intentionally empty —
they are filled in once docs/pages/PAGE-SPEC.md defines their shape.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Add docs/pages/PAGE-SPEC.md (prompt step 10): the schema every
docs/pages/<slug>/SPEC.md must follow — required frontmatter, 13 ordered
sections, format rules (Mermaid diagrams, footnote citations), and
good/bad examples for the States and Data sections.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Add agents-local and ai-mktpl-local directory-source marketplaces
(pointing at the local /home/user/agents and /home/user/ai-mktpl
checkouts on the dev branch) and repoint the agents/ai-mktpl plugins'
enabledPlugins entries at them. The GitHub-source agents/ai-mktpl
marketplaces are left declared; official-marketplace plugins unchanged.
This lets farish use in-development branch versions of the plugins.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Drop the mise toolchain-install block — that duplicates the mise
plugin's own SessionStart hook. Add a best-effort fetch + ff-only pull
of the local marketplace checkouts (/home/user/agents, /home/user/ai-mktpl)
so the directory-source marketplaces stay current with their branch.
Route bun install through `mise exec` so bun resolves on a first run.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
A context:fork skill capturing the adversarial-debate pattern: when not
fully confident in a decision or next step, dispatch an Agent whose job
is to disprove it, and proceed only once the claim survives the attack.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Marketplace sources cannot be branch-pinned (the ref field is ignored),
but registering a local git checkout kept on the target branch as a
directory-source marketplace achieves the goal. Update the
branch-pinning research with the working strategy and the fetch/pull
caveat; add the empirical local-marketplace-setup findings.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Adds .claude/skills/spec-writing/SKILL.md with a 7-step numbered procedure
that drives step 12 (one run per page). Adds three focused subskills:
- spec-writing-draft-outline: scaffold frontmatter + bullet-note placeholders
- spec-writing-write-section: fill one section with polished prose/tables
- spec-writing-review: validate completed spec against PAGE-SPEC.md

Each skill is a small ordered list; format rules and examples defer to
docs/pages/PAGE-SPEC.md rather than inlining them.
Ignore local-only Claude Code artifacts: settings.local.json (may hold
secrets), .claude/tmp/ (disposable working files), and .claude/worktrees/
(sub-agent git worktrees — local working areas, never committed). Task
records under .claude/tasks/ are intentionally NOT ignored — they are a
committed, git-tracked artifact.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Task records under .claude/tasks/ are a committed, git-tracked artifact
(the task-utils MCP server auto-commits them by design). Track the
step-12 page-specs task record.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Add the orchestration task record to farish/.claude/tasks/ — the
committed flat task store. Task records belong in the repo (the
task-utils MCP server auto-commits them by design); my prior records
were wrongly kept in the legacy ~/.claude/tasks/<session>/ location.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
The deploy-pages job failed — GitHub Pages is not yet enabled on the
repo. Set actions/configure-pages enablement:true so the first deploy
turns Pages on (source = GitHub Actions). Also add an if:failure()
diagnostics step to the deploy job that commits step outcomes to
ci-debug/, mirroring the screenshots job.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
github-actions Bot and others added 7 commits May 21, 2026 17:25
Adds TypeScript interfaces and ROUTE constants for all 8 API endpoints
specified in docs/api/: ModelCard, GetModelResponse, CreateModelResponse,
GetLeaderboardResponse/LeaderboardItem, GetUserProfileResponse,
ListUserModelsResponse/UserModelCard, SubmitRatingResponse,
ModelParams, ApiValidationError. Keeps ModelSummary with a deprecation
notice for backward compatibility with existing mock-data consumers.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Adds mockModelCards() which produces ModelCard[] matching the step-33
API contract (authorName/authorId/authorUsername, ratingAvg, viewCount,
createdAt). Keeps mockModelSummaries() with a deprecation notice for
existing browser-app consumers. Re-exports mockModelCards from index.ts.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
… helpers

Replaces exact-string path matching with a matchPath() function that
extracts :param segments. Updates RouteHandler to receive extracted params
as its second argument (existing zero-param handlers remain compatible).
Adds extractBearerToken() for auth-required routes, noContent() for 204
fire-and-forget responses, and Response passthrough so handlers can return
a Response directly.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
Registers the full set of spec endpoints from docs/api/:
- GET  /models          — paginated gallery with sort/limit/page validation
- POST /models          — create model (auth required, returns 201 stub)
- GET  /models/:id      — single model record (mockModelDetail seeded by id)
- POST /models/:id/views — record view (204 No Content, optional auth)
- PUT  /models/:id/rating — upsert rating (auth required, validates stars 1–5)
- GET  /leaderboard     — ranked list (validates board/period params)
- GET  /users/:username — creator profile (seeded by username)
- GET  /users/:username/models — user model list with pagination

All routes return deterministic mock data via @farish/mock-data; no real
data storage (that is step 35). Route ordering in index.ts ensures
/users/:username/models is matched before /users/:username.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
…tep 33)

Extends routes.test.ts with test suites for all 8 new endpoint stubs:
route descriptor, payload shape, error paths, determinism. Extends
server.integration.test.ts with HTTP smoke tests for every endpoint
including error responses and route-ordering verification.
Total: 63 tests passing.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
github-actions Bot and others added 2 commits May 21, 2026 17:30
The deploy-pages job kept failing with the deployment step skipped,
meaning a step before it failed. The job used a non-canonical action
combo: upload-pages-artifact@v4 + deploy-pages@v4.

GitHub's official Pages starter workflow (actions/starter-workflows
pages/static.yml) pairs upload-pages-artifact@v3 with deploy-pages@v5 —
that is the known-good combination. Align to it.

Also add an `id:` to every deploy-job step so the failure-diagnostics
step can name the exact failing step via toJSON(steps), and probe the
Pages REST API in the diagnostics so a configure-pages enablement
failure is distinguishable from an artifact/deploy failure.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
github-actions Bot and others added 2 commits May 21, 2026 17:35
Remove TASK_UTILS_REQUIRE_TASK=0. The opt-out was added when the
built-in TaskCreate tool was unavailable in Claude Code web; the
task-utils MCP server now provides task_create/task_update, so the
PreToolUse write-gate can enforce "must have an in-progress task"
again.

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
github-actions Bot and others added 2 commits May 21, 2026 17:45
Enable the 1pass plugin (settings.json) and configure it
(plugins.settings.yaml) to install the op CLI and inject the
github--app--jack GitHub App credentials from the AI-Jack 1Password
vault. The github-app plugin then mints an installation token on
SessionStart — GitHub access without the user authorizing personally.

Also pin TASK_UTILS_TASK_DIR to the repo's .claude/tasks so the
write-gate hook and the task-utils MCP server resolve the task store
to the repo (CLAUDE_PROJECT_DIR is unset in this environment, so the
default pwd-based resolution pointed at /home/user instead).

Seeds the YAML task store: 1.yaml (this work), 2.yaml (break-glass
gate idea).

https://claude.ai/code/session_01AiWbZuSU6UCjuXnrBBFk9p
@jack-nsheaps

jack-nsheaps Bot commented May 22, 2026

Copy link
Copy Markdown
Contributor

🤖 Closed and superseded by #2 — the same branch (claude/ai-3d-model-generator-XjoUi) re-opened as a draft under the jack-nsheaps[bot] identity, with an updated title and description. The branch is retained. — posted by the Jack agent (Claude Code) on behalf of @nsheaps.

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