1c-project-init
Skill0 starsChanged 4 months agoMITView on GitHub
Source workspace: C:\Users\YOUR_USERNAME\workspace\ai\1c-AI-workspace NEVER run 1cv8 DESIGNER manually when a skill exists for the operation. The /db-dump-xml skill reads .v8-project.json automatically and connects to the remote server directly — no need to run DESIGNER inside the container. License PROF on the local machine is sufficient for all DESIGNER operations including DumpConfigToFiles and extension dumps. Script output lists what was copied/updated. Ask ALL questions upfront in a single AskUserQuestion call (multiple questions at once). Question order matters — project type and…
- Sends data out
- Commits and pushes
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Arman-Kudaibergenov/1c-ai-development-kitword for word, first seen Mar 4, 2026
Other versions1 project uses a version of this.
Word for word · 1
- Arman-Kudaibergenov/1c-ai-development-kit★ 163100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository55 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- 1c-help-mcpSkill
- 1c-query-optSkill
- 1c-test-runnerSkill
- 1c-web-sessionSkill
- brainstormSkill
- bsp-patternsSkill
- cfe-borrowSkill
- cfe-diffSkill
- cf-editSkill
- cfe-initSkill
- cfe-patch-methodSkill
- cf-initSkill
- db-createSkill
- db-dump-cfSkill
- db-dump-xmlSkill
- db-listSkill
- db-load-cfSkill
- db-load-gitSkill
- db-load-xmlSkill
- db-runSkill
- db-updateSkill
- epf-expertSkill
- erf-expertSkill
- form-addSkill
- form-compileSkill
- form-editSkill
- form-patternsSkill
- form-removeSkill
- help-addSkill
- img-gridSkill
- inspectSkill
- meta-compileSkill
- meta-editSkill
- meta-removeSkill
- mxl-expertSkill
- openspec-applySkill
- openspec-archiveSkill
- openspec-proposalSkill
- playwright-testSkill
- role-expertSkill
- session-restoreSkill
- session-retroSkill
- session-saveSkill
- skd-compileSkill
- skd-editSkill
- subagent-devSkill
- subsystem-expertSkill
- validateSkill
- web-infoSkill
- web-publishSkill
- web-stopSkill
- web-testSkill
- web-unpublishSkill
- write-planSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 5 are distinctive, and 12 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 28
NEVER run 1cv8 DESIGNER manually: when a skill exists for the operation.
- Distinctive: line 41
If argument provided → use it
- Very specific: line 162
Check if infobase already exists (rac infobase summary list).
- Very specific: line 191
Only proceed to next steps if web check returns 200/302.
- Very specific: line 225
Follow the codemetadata MCP — auto-deploy section in ~/.claude/1c-development-rules.md.
- Very specific: line 230
Add service to C:\Users\YOUR_USERNAME\workspace\ai\1c-enhanced-codemetadata\docker-compose-ct104.yml with next free port (7530+)
- Very specific: line 232
Update {{CODEMETADATA_URL}} in .mcp.json with actual port
- Distinctive: line 237
If source dump not yet available (step 8.4 hasn't run yet), defer codemetadata deploy to AFTER step 8.4 completes.
- Very specific: line 241
Use /db-dump-xml skill — reads .v8-project.json automatically, runs local DESIGNER against remote server.
- Very specific: line 255
IMPORTANT: Always pass -V8Path matching the server platform version.
- Distinctive: line 271
If project type = extension only — skip step 8.4.1, only export extension(s).
- Distinctive: line 272
If project type = configuration + extension — do both 8.4.1 and 8.4.2.
- Very specific: line 358
If extension project: WORKSPACE_ROOT=/projects/<PROJECT_NAME>/ext/<EXTENSION_NAME>
- Very specific: line 359
If configuration only: WORKSPACE_ROOT=/projects/<PROJECT_NAME>/src
- Very specific: line 360
If both: WORKSPACE_ROOT=/projects/<PROJECT_NAME>/src (LSP indexes base config.
- Very specific: line 397
Always overwrite .claude/docs/ (platform specs don't change per-project).
- Very specific: line 398
Never overwrite: CLAUDE.md, .mcp.json, .v8-project.json, openspec/.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/1c-project-init — Initialize or enrich 1C project
Source workspace: C:\Users\YOUR_USERNAME\workspace\ai\1c-AI-workspace
Mode detection
.claude/skills/exists in target → enrich (sync missing/outdated skills & docs)- No
.claude/skills/→ new (full init)
CRITICAL: Use skills, not manual 1C commands
NEVER run 1cv8 DESIGNER manually when a skill exists for the operation.
| Task | WRONG | RIGHT |
| Dump XML | ssh ... docker exec ... 1cv8 DESIGNER /DumpConfigToFiles | /db-dump-xml skill |
| Load XML | docker exec ... 1cv8 DESIGNER /LoadConfigFromFiles | /db-load-xml skill |
| Build CF | manual 1cv8 | /db-dump-cf, /cf-init skills |
The /db-dump-xml skill reads .v8-project.json automatically and connects to the remote server directly — no need to run DESIGNER inside the container. License PROF on the local machine is sufficient for all DESIGNER operations including DumpConfigToFiles and extension dumps.
Steps
1. Determine target path
- If argument provided → use it
- Otherwise → current working directory (
pwd)
2. Run init script
powershell.exe -NoProfile -File "C:\Users\YOUR_USERNAME\workspace\ai\1c-AI-workspace\.claude\skills\1c-project-init\scripts\init.ps1" -TargetPath "<target>" -Mode <new|enrich>Script output lists what was copied/updated.
3. If mode = new — collect project info interactively
Ask ALL questions upfront in a single AskUserQuestion call (multiple questions at once).
Question order matters — project type and extension names come FIRST:
- Project type (options):
configuration/extension/configuration + extension/external-processor / other - Extension name(s) — ask only if type includes extension. If multiple, comma-separated (e.g.
МоёРасширение, ДругоеРасширение) - 1C base name (e.g.
Forte,Buh) - Platform version:
8.3.24/8.3.25/8.3.27 - Web publication name (e.g.
forte,buh) — for HTTP API and playwright - Admin login and password — for
.v8-project.json
Note: questions 1+2 can be asked together in first call; 3-6 in second call if user answered that extensions are involved. Or ask all in one call if possible.
Platform → server mapping (all on CT107 / YOUR_EDT_SERVER):
8.3.24→ serverYOUR_EDT_SERVER:1641, containeronec-server-24, web port80818.3.25→ serverYOUR_EDT_SERVER:1541, containeronec-server-25, web port80808.3.27→ serverYOUR_EDT_SERVER:1741, containeronec-server-27, web port8082
4. Generate CLAUDE.md
Read template: C:\Users\YOUR_USERNAME\workspace\ai\1c-AI-workspace\.claude\skills\1c-project-init\templates\CLAUDE.md.template
Fill all placeholders:
{{PROJECT_NAME}}— project name{{PROJECT_DESCRIPTION}}— brief description (include project type + extensions if applicable){{V8_VERSION}}— platform version (e.g.8.3.25){{SERVER}}—YOUR_EDT_SERVER{{PORT}}— from platform map{{SERVER_SUFFIX}}—24/25/27{{WEB_PORT}}— from platform map{{BASE_NAME}}— 1C base name{{PUBLICATION}}— web publication name{{EXTENSION_LINE}}—- Extensions: <names>if extensions present, else omit line{{DEV_ZONE}}—src//ext/<ExtName>//src/ + ext/<ExtName>/{{DEV_ZONE_NOTE}}—All modifications go into the extension, not the base configuration.if extension-only or mixed; empty if configuration-only{{STRUCTURE_LINES}}— includesrc/line if has config,ext/line if has extensions:- config:
src/ — configuration source - extension:
ext/<ExtName>/ — extension source (primary development zone) - both:
src/ — base configuration source (read-only reference)\next/<ExtName>/ — extension source (PRIMARY development zone)
- config:
Write to <target>/CLAUDE.md.
5. Generate .mcp.json
Read template: C:\Users\YOUR_USERNAME\workspace\ai\1c-AI-workspace\.claude\skills\1c-project-init\templates\mcp.json.template
Fill all placeholders:
{{PROJECT_NAME}}— project directory name (for bsl-lsp container){{PUBLICATION}}— web publication name (for ai-debug URL){{WEB_PORT}}— from platform map (8081/8080/8082){{ADMIN_USER}}— admin login{{ADMIN_PWD}}— admin password{{CODEMETADATA_URL}}— codemetadata MCP URL. Format:http://YOUR_MCP_SERVER:<PORT>/mcp. Port from registry: next free in 7530+ range. If codemetadata not yet deployed, use placeholderhttp://YOUR_MCP_SERVER:{{CODEMETADATA_PORT}}/mcpand note in report.
Write to <target>/.mcp.json.
6. Generate .v8-project.json if not exists
Read template: C:\Users\YOUR_USERNAME\workspace\ai\1c-AI-workspace\.claude\skills\1c-project-init\templates\v8-project.json.template
Fill all placeholders:
{{V8PATH}}—C:\\Program Files\\1cv8\\<V8_VERSION>\\binmatching the server platform. NEVER leave empty — local default may be a different version.{{PORT}}— from platform map (1641/1541/1741){{BASE_NAME}}— 1C base name{{ADMIN_USER}}— admin login{{ADMIN_PWD}}— admin password{{WEB_PORT}}— from platform map (8081/8080/8082){{PUBLICATION}}— web publication name
Write to <target>/.v8-project.json.
7. Create openspec structure if mode = new
openspec/
project.md ← project context for AI
changes/ ← active proposals
specs/ ← feature specs
archive/ ← done
dist/ ← built artifacts (CFE/CF/EPF) — tracked in git for distribution8. Deploy infobase on CT107 (mode = new)
Ask: "Развернуть базу на CT107?"
If yes:
Step 8.1 — Copy .dt file to CT107 (/mnt/data/data-24/ maps to /var/lib/onec/ inside container):
scp "<dt_file_path>" root@YOUR_EDT_SERVER:/mnt/data/data-<SERVER_SUFFIX>/<BASE_NAME>.dtStep 8.2 — Ensure Xvfb is running in the target container (required for 1cv8 DESIGNER):
ssh root@YOUR_EDT_SERVER "docker exec onec-server-<SERVER_SUFFIX> pgrep Xvfb || docker exec -d onec-server-<SERVER_SUFFIX> Xvfb :99 -screen 0 1024x768x16"deploy-infobase.sh uses DISPLAY=:99 but does NOT auto-start Xvfb. Without this step, deploy fails with "Unable to initialize GTK+".
Step 8.2b — Run deploy script on CT107:
ssh root@YOUR_EDT_SERVER "/opt/1c-dev/deploy-infobase.sh --name <BASE_NAME> --dt /mnt/data/data-<SERVER_SUFFIX>/<BASE_NAME>.dt --server <SERVER_SUFFIX> --admin-user <user> --admin-pwd <pwd>"Script /opt/1c-dev/deploy-infobase.sh — universal script (supports 24/25/27):
--server 24|25|27— selects container (onec-server-XX), ports, web container automatically- Auto-detects platform version (
ls /opt/1cv8/x86_64/inside container) - Auto-detects cluster ID via
rac cluster list - DT path mapping:
/mnt/data/data-<SERVER>/X.dt→/var/lib/onec/X.dtinside container
Does 4 steps automatically:
- Check if infobase already exists (
rac infobase summary list); if not — create viarac infobase create+ PostgreSQL DB (--create-database). Fails with error if UUID can't be obtained. 1cv8 DESIGNER /RestoreIB— restores .dt. Verifies "успешно завершена" in log, exits on failure.onec-webinst.sh publish— publishes web inonec-web-<SERVER_SUFFIX>rac infobase update --license-distribution=allow
Script behaviour:
- DB password read from
/opt/1c-dev/secrets/pg_password(not hardcoded) - Lock file
/tmp/deploy-<NAME>.lockprevents concurrent runs - Log written to
/tmp/deploy-<NAME>-<timestamp>.log(timestamped, not overwritten) set -euo pipefail— stops on any error
Known cluster IDs: 8.3.24=eecfed03-e569-4bc7-a729-b8518e4b6859, 8.3.27=0c2ac9c1-8017-4ac8-8b93-35f1409a3ecb.
Result URL: http://YOUR_EDT_SERVER:<WEB_PORT>/<BASE_NAME>/
Step 8.3 — Verify infobase availability:
# 1. Infobase registered in cluster
ssh root@YOUR_EDT_SERVER "docker exec onec-server-24 /opt/1cv8/x86_64/<ONEC_VERSION>/rac localhost:1645 infobase summary --cluster=<CLUSTER_ID> | grep -i '<BASE_NAME>'"
# 2. Web publication responds
curl -s -o /dev/null -w "%{http_code}" "http://YOUR_EDT_SERVER:<WEB_PORT>/<BASE_NAME>/"
# Expected: 200 or 302
# 3. HTTP API available (if 1c-ai-debug configured)
curl -s "http://YOUR_EDT_SERVER:<WEB_PORT>/<BASE_NAME>/hs/ai/ping" -u "<user>:<pwd>"
# Expected: {"status":"ok"} or any 200 responseOnly proceed to next steps if web check returns 200/302. If 503/404 — check deploy log on CT107: docker exec onec-server-24 cat /var/lib/onec/restore_<BASE_NAME>.log
8.3.1. Install AI_Debug extension (MANDATORY for all 1C projects)
AI_Debug extension provides: HTTP API for MCP (1c-ai-debug), unit test framework (ЮТТесты/ЮТУтверждения), and hosts all *_Test modules. Without it, 1c-ai-debug MCP and /1c-test-runner won't work.
Source: C:\Users\YOUR_USERNAME\workspace\ai\1c-ai-debug-extension\dist\AI_Debug.cfe (pre-built, kept in git).
# Load extension into database
powershell.exe -NoProfile -File .claude/skills/db-load-xml/scripts/db-load-xml.ps1 `
-V8Path "C:\Program Files\1cv8\<V8_VERSION>\bin" `
-InfoBaseServer "YOUR_EDT_SERVER:<PORT>" `
-InfoBaseRef "<BASE_NAME>" `
-UserName "<ADMIN_USER>" -Password "<ADMIN_PWD>" `
-ConfigDir "C:\Users\YOUR_USERNAME\workspace\ai\1c-ai-debug-extension\src" `
-Extension "AI_Debug" -Mode FullThen update DB to apply extension:
powershell.exe -NoProfile -File .claude/skills/db-update/scripts/db-update.ps1 `
-V8Path "C:\Program Files\1cv8\<V8_VERSION>\bin" `
-InfoBaseServer "YOUR_EDT_SERVER:<PORT>" `
-InfoBaseRef "<BASE_NAME>" `
-UserName "<ADMIN_USER>" -Password "<ADMIN_PWD>"Verify: curl -s "http://YOUR_EDT_SERVER:<WEB_PORT>/<BASE_NAME>/hs/ai/ping" -u "<user>:<pwd>" → {"status":"ok"}.
Test modules go HERE — never into the main project configuration. See "Test modules (*_Test)" rule in global CLAUDE.md.
8.3.2. Deploy codemetadata MCP (MANDATORY for all 1C projects)
Follow the codemetadata MCP — auto-deploy section in ~/.claude/1c-development-rules.md.
Summary:
- Find XML config dump in project (
src/cf/,src/src/, orsrc/cfe/) - Copy to CT104:
ssh proxmox "pct exec 104 -- mkdir -p /mnt/onec-xml/<PROJECT>/src/cf ..." - Add service to
C:\Users\YOUR_USERNAME\workspace\ai\1c-enhanced-codemetadata\docker-compose-ct104.ymlwith next free port (7530+) - Deploy:
scpcompose file →docker compose up -d <project>-codemetadata-enhanced - Update
{{CODEMETADATA_URL}}in.mcp.jsonwith actual port - Verify:
curl -s "http://YOUR_MCP_SERVER:<PORT>/health"
Port registry (from 1c-development-rules.md): minimkg=7530, mcparqa24=7540, ai-debug=7550, kaf=7560, next=7570, ...
If source dump not yet available (step 8.4 hasn't run yet), defer codemetadata deploy to AFTER step 8.4 completes.
8.4. Export source from deployed database
Use /db-dump-xml skill — reads .v8-project.json automatically, runs local DESIGNER against remote server.
Do NOT run DESIGNER manually inside the container — the skill works fine from the local machine with PROF license.
8.4.1 — Export main configuration (if project type = configuration or both):
powershell.exe -NoProfile -File .claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 `
-V8Path "C:\Program Files\1cv8\<V8_VERSION>\bin" `
-InfoBaseServer "YOUR_EDT_SERVER:<PORT>" `
-InfoBaseRef "<BASE_NAME>" `
-UserName "<ADMIN_USER>" -Password "<ADMIN_PWD>" `
-ConfigDir "src" -Mode FullIMPORTANT: Always pass -V8Path matching the server platform version. The local default 1cv8.exe may be a newer version (e.g. 8.3.27), causing "version mismatch" error if server is 8.3.24 or 8.3.25.
Note: Full config dump can take several minutes (17k+ XML files is normal for ERP/BSP-based configs).
8.4.2 — Export extension(s) (if project type = extension or both):
For each extension name in EXTENSION_NAMES:
powershell.exe -NoProfile -File .claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 `
-InfoBaseServer "YOUR_EDT_SERVER:<PORT>" `
-InfoBaseRef "<BASE_NAME>" `
-UserName "<ADMIN_USER>" -Password "<ADMIN_PWD>" `
-ConfigDir "ext/<EXTENSION_NAME>" -Extension "<EXTENSION_NAME>" -Mode FullIf project type = extension only — skip step 8.4.1, only export extension(s). If project type = configuration + extension — do both 8.4.1 and 8.4.2.
9. Initialize git repository
# 1. Create .gitignore
cat > .gitignore << 'EOF'
# 1C binaries (intermediate/working files)
*.dt
# Built artifacts in dist/ are tracked (for distribution)
# All other CF/CFE/EPF/ERF outside dist/ are ignored
*.cf
*.cfe
*.epf
*.erf
!dist/*.cf
!dist/*.cfe
!dist/*.epf
!dist/*.erf
# Credentials (contains passwords)
.v8-project.json
# Logs and temp
*.log
tmp/
# OS
.DS_Store
Thumbs.db
EOF
# 2. Create .gitattributes
cat > .gitattributes << 'EOF'
* text=auto eol=lf
src/**/*.xml text eol=lf
src/**/*.mdo text eol=lf
*.ps1 text eol=crlf
*.dt binary
*.cf binary
*.cfe binary
*.epf binary
*.erf binary
EOF
# 3. Init repo
git init
git config user.name "Arman"
git config user.email "arman@localhost"# 4. Create Gitea repo via API
curl -s -X POST "http://YOUR_SERVER:3000/api/v1/user/repos" \
-H "Authorization: token YOUR_GITEA_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"name\":\"<PROJECT_NAME>\",\"description\":\"<PROJECT_DESCRIPTION>\",\"private\":true}"# 5. Add remote, commit, push
git remote add gitea http://admin:admin123@YOUR_SERVER:3000/admin/<PROJECT_NAME>.git
# Add dirs based on project type:
# configuration only: git add .gitignore .gitattributes CLAUDE.md .mcp.json openspec/ .claude/ src/
# extension only: git add .gitignore .gitattributes CLAUDE.md .mcp.json openspec/ .claude/ ext/ dist/
# configuration + ext: git add .gitignore .gitattributes CLAUDE.md .mcp.json openspec/ .claude/ src/ ext/ dist/
git commit -m "Initial commit: project scaffold + source"
git push -u gitea masterNote: git push with 17k+ files takes time. Run in background if needed.
Note: .v8-project.json is intentionally excluded (contains passwords) — keep it only locally.
10. Configure mcp-bsl-lsp on CT100
The mcp-lsp-<PROJECT_NAME> container was created by the init script but needs:
10.1 — Clone project to CT100 workspace:
ssh root@YOUR_SERVER "git clone http://admin:admin123@YOUR_SERVER:3000/admin/<PROJECT_NAME>.git /opt/workspace/<PROJECT_NAME>"10.2 — Recreate container with correct WORKSPACE_ROOT:
- If extension project:
WORKSPACE_ROOT=/projects/<PROJECT_NAME>/ext/<EXTENSION_NAME> - If configuration only:
WORKSPACE_ROOT=/projects/<PROJECT_NAME>/src - If both:
WORKSPACE_ROOT=/projects/<PROJECT_NAME>/src(LSP indexes base config; ext files accessed via Grep)
ssh root@YOUR_SERVER "
docker stop mcp-lsp-<PROJECT_NAME> && docker rm mcp-lsp-<PROJECT_NAME> && \
docker run -d \
--name mcp-lsp-<PROJECT_NAME> \
--restart unless-stopped \
-v /opt/workspace:/projects:rw \
-e MCP_LSP_BSL_JAVA_XMX=4g \
-e MCP_LSP_BSL_JAVA_XMS=1g \
-e MCP_LSP_LOG_LEVEL=error \
-e FILE_WATCHER_MODE=polling \
-e FILE_WATCHER_INTERVAL=30s \
-e HOST_PROJECTS_ROOT=/opt/workspace \
-e PROJECTS_ROOT=/projects \
-e WORKSPACE_ROOT=/projects/<PROJECT_NAME>/<DEV_PATH> \
mcp-lsp-bridge-bsl:latest
"10.3 — Set up auto-sync (git pull on CT100 every 5 min):
ssh root@YOUR_SERVER "(crontab -l 2>/dev/null; echo '*/5 * * * * cd /opt/workspace/<PROJECT_NAME> && git pull --quiet origin master 2>/dev/null') | crontab -"Note: .mcp.json template uses /usr/bin/mcp-lsp-bridge (correct path in container).
11. Report
List what was created/updated. Remind user to configure:
v8pathin.v8-project.jsonif auto-detect fails- Open project with
claudein target directory (MCP servers load from.mcp.json)
Enrich mode specifics
Compare skill files by content hash — copy only if workspace version is newer or file missing in target.
Always overwrite .claude/docs/ (platform specs don't change per-project).
Never overwrite: CLAUDE.md, .mcp.json, .v8-project.json, openspec/.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

