Files
llm/plugins/1c/tools/tool-contract.yaml
T

457 lines
22 KiB
YAML

id: 1c-tools
name: 1C Tool Contract
status: draft
rules:
- "Do not invent 1C metadata. Request metadata through tools when object structure matters."
- "Do not expose credentials, connection strings, tokens, personal data, or client secrets."
- "Prefer read-only tools by default."
tools:
- id: get_1c_metadata
mode: read
description: "Get available 1C metadata objects by kind."
input_schema:
type: object
required:
- object_kind
properties:
object_kind:
type: string
enum:
- document
- catalog
- register
- all
output_notes:
- "Return object names, kinds, and available fields when supported by the backend."
- "Never include secrets or database credentials."
- id: search_1c_modules
mode: read
description: "Search BSL modules by text or object name."
status: planned
- id: explain_bsl_error
mode: local
description: "Explain a BSL error message and propose safe fixes."
status: planned
- id: check_1c_query
mode: local
description: "Check a 1C query for common syntax and semantic issues."
status: draft
policy: plugins/1c/connector/policies/read-only-query.yaml
command: scripts/validate_1c_readonly_query.py
- id: compare_1c_saved_state_objects
mode: read
description: "Compare saved-but-not-applied 1C state with active state and return changes in configurator object terms."
status: draft
command: scripts/compare_1c_saved_state_objects.ps1
output_schema: onec_saved_state_object_comparison.v1
safety:
- "Read-only SQL access."
- "Compares ConfigSave with Config and ConfigCASSave with ConfigCAS."
- "Returns public object changes as 1C configurator objects, not SQL table names."
- "Keeps FileName/hash details only as storage evidence."
- "Does not perform SQL writes."
- id: analyze_1c_saved_state_object_details
mode: read
description: "Analyze saved-state object changes inside changed payloads and return object-level detail hints."
status: draft
command: scripts/analyze_1c_saved_state_object_details.py
output_schema: onec_saved_state_object_detail.v1
safety:
- "Read-only file analysis."
- "Consumes saved-state object comparison plus exported active/saved payload files."
- "Returns text deltas, added/removed words, and saved form/module string samples in 1C object context."
- "Does not perform SQL writes."
- id: build_1c_saved_state_object_report
mode: read
description: "Build one read-only saved-state report: object comparison, required SQL payload exports, object detail analysis, and Markdown summary."
status: draft
command: scripts/build_1c_saved_state_object_report.ps1
output_schema: onec_saved_state_object_report.v1
preferred_for:
- "Agent needs to inspect saved-but-not-applied Designer changes."
- "User asks what changed in Configurator after saving but before applying."
safety:
- "Read-only SQL access."
- "Orchestrates compare_1c_saved_state_objects and analyze_1c_saved_state_object_details."
- "Exports only payload evidence needed for object-level comparison."
- "Returns public changes as 1C configurator objects, not SQL table names."
- "Includes agent_summary for compact agent-facing follow-up decisions."
- "Classifies payload parts with roles and filtered semantic term hints."
- "Writes a human-readable Markdown report by default."
- "Runs check_1c_saved_state_object_report as a final contract gate."
- "Does not perform SQL writes."
- id: check_1c_saved_state_object_report
mode: local
description: "Validate saved-state object report JSON, linked detail/comparison files, safety flags, agent_summary, payload roles, and semantic hints."
status: draft
command: scripts/check_1c_saved_state_object_report.py
output_schema: onec_saved_state_object_report_check.v1
safety:
- "Read-only validation."
- "Rejects missing linked comparison/detail/Markdown files."
- "Rejects unstable agent_summary array fields and unknown payload roles."
- "Rejects reports that do not preserve read-only safety flags."
- id: get_1c_saved_state_object_change
mode: local
description: "Return one changed 1C object from a saved-state object report by configurator-visible name."
status: draft
command: scripts/get_1c_saved_state_object_change.py
output_schema: onec_saved_state_object_change.v1
preferred_for:
- "Agent has a saved-state report and needs only one changed object."
- "User asks what changed in a specific object after saving in Designer."
safety:
- "Read-only JSON lookup."
- "Searches by full name, short name, synonym, and suffix/contains matches."
- "Returns candidates instead of guessing when a match is ambiguous."
- "Keeps SQL storage details as evidence under comparison/detail fields."
- id: list_1c_saved_state_object_changes
mode: local
description: "List changed 1C objects from a saved-state object report with compact filters."
status: draft
command: scripts/list_1c_saved_state_object_changes.py
output_schema: onec_saved_state_object_change_list.v1
preferred_for:
- "Agent needs to route a saved-state report before reading details."
- "User asks which changed objects are modules, forms, extension changes, or missing active parts."
safety:
- "Read-only JSON lookup."
- "Filters by layer, kind, extension, payload role, text diff, and active-missing state."
- "Returns compact 1C object summaries with payload roles and semantic terms."
- id: compare_1c_saved_state_object_reports
mode: local
description: "Compare two saved-state object reports and return what changed between agent observations in 1C object terms."
status: draft
command: scripts/compare_1c_saved_state_object_reports.py
output_schema: onec_saved_state_object_report_delta.v1
preferred_for:
- "Agent needs to know what changed since the previous saved-state report."
- "User continues editing Designer and asks what is new since the last check."
safety:
- "Read-only JSON comparison."
- "Compares agent_summary objects by 1C full_name and stable payload-part fingerprints."
- "Returns added, removed, changed, and unchanged 1C objects."
- "Keeps system changes separate from object changes."
- "Writes a Markdown delta report by default when --output is provided unless --skip-markdown is used."
- "Runs check_1c_saved_state_object_report_delta as a final contract gate when --output is provided unless --skip-check is used."
- id: watch_1c_saved_state_once
mode: read
description: "Build one timestamped saved-state report observation and compare it with the previous observation when available."
status: draft
command: scripts/watch_1c_saved_state_once.ps1
output_schema: onec_saved_state_watch_once.v1
preferred_for:
- "User is editing Designer and wants the agent to observe saved-state changes repeatedly."
- "Agent needs a new report plus delta from the previous observation in one command."
safety:
- "Read-only SQL access."
- "Runs build_1c_saved_state_object_report and compare_1c_saved_state_object_reports."
- "Stores each observation in a timestamped run directory."
- "Writes a Markdown watch summary by default unless -SkipMarkdown is used."
- "Runs check_1c_saved_state_watch_once as a final contract gate."
- "Does not perform SQL writes."
- id: render_1c_saved_state_watch_once_markdown
mode: local
description: "Render a one-shot saved-state watch manifest as compact Markdown."
status: draft
command: scripts/render_1c_saved_state_watch_once_markdown.py
output_schema: markdown
safety:
- "Read-only rendering."
- "Consumes onec_saved_state_watch_once.v1 JSON."
- "Shows report, delta, checks, counts, and safety."
- id: check_1c_saved_state_watch_once
mode: local
description: "Validate a one-shot saved-state watch manifest and linked report/delta checks."
status: draft
command: scripts/check_1c_saved_state_watch_once.py
output_schema: onec_saved_state_watch_once_check.v1
safety:
- "Read-only validation."
- "Rejects missing linked report, report check, delta, delta check, or mismatched counts."
- id: list_1c_saved_state_watch_runs
mode: local
description: "List timestamped saved-state watch runs under an output root."
status: draft
command: scripts/list_1c_saved_state_watch_runs.py
output_schema: onec_saved_state_watch_run_list.v1
preferred_for:
- "Agent needs the latest saved-state watch observation."
- "User asks what watch runs exist or which runs had delta changes."
safety:
- "Read-only filesystem listing."
- "Returns compact run summaries, linked artifact paths, check statuses, and delta counts."
- "Supports filters for runs with delta and runs with actual delta changes."
- "Writes a Markdown run-list report by default when --output is provided unless --skip-markdown is used."
- "Runs check_1c_saved_state_watch_run_list as a final contract gate when --output is provided unless --skip-check is used."
- id: check_1c_saved_state_watch_run_list
mode: local
description: "Validate saved-state watch run list JSON, linked Markdown, run directories, check statuses, latest item, and counts."
status: draft
command: scripts/check_1c_saved_state_watch_run_list.py
output_schema: onec_saved_state_watch_run_list_check.v1
safety:
- "Read-only validation."
- "Rejects missing linked Markdown when the list JSON declares one."
- "Rejects missing run directories, check status mismatches, latest mismatch, and count mismatches."
- id: get_1c_saved_state_latest_watch_run
mode: local
description: "Return the latest saved-state watch run under an output root."
status: draft
command: scripts/get_1c_saved_state_latest_watch_run.py
output_schema: onec_saved_state_latest_watch_run.v1
preferred_for:
- "Agent needs the most recent saved-state observation and linked artifacts."
- "User asks for the latest watch result or latest run with delta changes."
safety:
- "Read-only filesystem lookup."
- "Can require a run with delta or a run with actual delta changes."
- "Returns found=false instead of guessing when no run matches."
- "Writes a Markdown latest-run report by default when --output is provided unless --skip-markdown is used."
- "Runs check_1c_saved_state_latest_watch_run as a final contract gate when --output is provided unless --skip-check is used."
- id: render_1c_saved_state_latest_watch_run_markdown
mode: local
description: "Render latest saved-state watch run lookup JSON as compact Markdown."
status: draft
command: scripts/render_1c_saved_state_latest_watch_run_markdown.py
output_schema: markdown
safety:
- "Read-only rendering."
- "Consumes onec_saved_state_latest_watch_run.v1 JSON."
- "Shows matching requirements, found status, latest run artifacts, counts, and safety."
- id: check_1c_saved_state_latest_watch_run
mode: local
description: "Validate latest saved-state watch run lookup JSON and linked run/check artifacts."
status: draft
command: scripts/check_1c_saved_state_latest_watch_run.py
output_schema: onec_saved_state_latest_watch_run_check.v1
safety:
- "Read-only validation."
- "Accepts found=false when no run matches the requested requirements."
- "Rejects missing linked run directories, report files, or check status mismatches."
- id: render_1c_saved_state_watch_run_list_markdown
mode: local
description: "Render saved-state watch run list JSON as compact Markdown."
status: draft
command: scripts/render_1c_saved_state_watch_run_list_markdown.py
output_schema: markdown
safety:
- "Read-only rendering."
- "Consumes onec_saved_state_watch_run_list.v1 JSON."
- "Shows latest run, filters, check statuses, artifact links, and delta counts."
- id: check_1c_saved_state_object_report_delta
mode: local
description: "Validate saved-state report delta JSON, linked Markdown, safety flags, counts, object arrays, payload roles, and changed-part structure."
status: draft
command: scripts/check_1c_saved_state_object_report_delta.py
output_schema: onec_saved_state_object_report_delta_check.v1
safety:
- "Read-only validation."
- "Rejects missing linked Markdown when the delta JSON declares one."
- "Rejects unstable object arrays and unknown payload roles."
- "Rejects count mismatches and changed objects with identical before/after fingerprints."
- id: render_1c_saved_state_object_report_delta_markdown
mode: local
description: "Render saved-state report delta JSON as compact Markdown."
status: draft
command: scripts/render_1c_saved_state_object_report_delta_markdown.py
output_schema: markdown
safety:
- "Read-only rendering."
- "Consumes onec_saved_state_object_report_delta.v1 JSON."
- "Keeps changed 1C objects and system changes separate."
- id: render_1c_saved_state_object_report_markdown
mode: local
description: "Render saved-state object report JSON as a compact human-readable Markdown report."
status: draft
command: scripts/render_1c_saved_state_object_report_markdown.py
output_schema: markdown
safety:
- "Read-only rendering."
- "Consumes saved-state report, comparison, and detail JSON files."
- "Keeps SQL storage names as evidence while leading with 1C configurator objects."
- "Limits diff output by default."
- id: generate_bsl_snippet
mode: local
description: "Generate a small BSL snippet from a user task."
status: planned
- id: propose_1c_change
mode: local
description: "Create a reviewable change proposal. Never applies changes directly."
status: draft
policy: plugins/1c/connector/policies/change-workflow.yaml
- id: validate_1c_patch_workspace_semantics
mode: local
description: "Validate editable patch workspace BSL/Form.xml semantics before review or packaging."
status: draft
command: scripts/validate_1c_patch_workspace_semantics.py
output_schema: onec_patch_workspace_semantic_validation.v1
guarantees:
- "Parses Form.xml files and rejects invalid XML."
- "Parses BSL routine declarations and rejects duplicate routines."
- "Checks basic BSL block balance for procedures, functions, If/For/While/Try blocks."
- "Checks form command actions against routines in the matching form module when both files are present."
- id: edit_1c_bsl_routine
mode: local
description: "Append, replace, or upsert one BSL procedure/function under a patch workspace working/ file."
status: draft
command: scripts/edit_1c_bsl_routine.py
output_schema: onec_bsl_routine_edit.v1
safety:
- "Only edits BSL modules listed in the workspace manifest."
- "Only writes under working/."
- "Runs semantic workspace validation after the edit."
- "Rolls the file back by default when semantic validation fails."
- id: edit_1c_form_command
mode: local
description: "Append, replace, or upsert one Form.xml command under a patch workspace working/ file."
status: draft
command: scripts/edit_1c_form_command.py
output_schema: onec_form_command_edit.v1
safety:
- "Only edits Form.xml files listed in the workspace manifest."
- "Only writes under working/."
- "Runs semantic workspace validation after the edit."
- "Rolls the file back by default when semantic validation fails."
limits:
- "Edits only the root Commands collection; it does not add visible buttons/items yet."
- id: edit_1c_form_button
mode: local
description: "Append, replace, or upsert one visible Form.xml button under a named parent form item."
status: draft
command: scripts/edit_1c_form_button.py
output_schema: onec_form_button_edit.v1
safety:
- "Only edits Form.xml files listed in the workspace manifest."
- "Only writes under working/."
- "Requires the target form command to exist before adding the button."
- "Runs semantic workspace validation after the edit."
- "Rolls the file back by default when semantic validation fails."
- id: add_1c_form_button_workflow
mode: local
description: "Atomically add or update a BSL handler, Form.xml command, and visible Form.xml button."
status: draft
command: scripts/add_1c_form_button_workflow.py
output_schema: onec_form_button_workflow.v1
preferred_for:
- "User asks to add a visible form button."
- "Agent needs to create the BSL handler, command, and button together."
safety:
- "Only edits files listed in the workspace manifest."
- "Only writes under working/."
- "Snapshots all working/ manifest files before editing."
- "Restores the snapshot by default when any step fails."
- "Runs semantic workspace validation and returns a diff summary."
- id: create_1c_patch_bundle
mode: local
description: "Create a zip review bundle from a ready_for_review patch workspace without applying changes."
status: draft
command: scripts/create_1c_patch_bundle.py
output_schema: onec_patch_bundle_creation.v1
safety:
- "Requires preflight status ready_for_review."
- "Copies only modified working/ files and review evidence."
- "Does not write to source extension files, SQL, Config, ConfigSave, or ConfigCAS."
- "Runs bundle validation after creation."
- id: check_1c_patch_bundle
mode: local
description: "Validate a 1C patch review bundle directory and optional zip archive."
status: draft
command: scripts/check_1c_patch_bundle.py
output_schema: onec_patch_bundle_check.v1
safety:
- "Read-only validation."
- "Checks manifest, preflight, diff, copied modified-file hashes, and zip contents."
- id: create_1c_extension_staging_from_bundle
mode: local
description: "Create a disposable extension XML staging copy from a validated patch bundle."
status: draft
command: scripts/create_1c_extension_staging_from_bundle.py
output_schema: onec_extension_staging_creation.v1
safety:
- "Requires a valid patch bundle."
- "Copies the source extension directory to a staging directory."
- "Overlays only bundle modified files into staging."
- "Does not modify source extension files, SQL, Config, ConfigSave, or ConfigCAS."
- "Marks the staging copy as requiring disposable 1C validation."
- "Runs staging validation after creation."
- id: check_1c_extension_staging
mode: local
description: "Validate a disposable extension XML staging copy."
status: draft
command: scripts/check_1c_extension_staging.py
output_schema: onec_extension_staging_check.v1
safety:
- "Read-only validation."
- "Checks staging manifest schema and safety flags."
- "Checks staged file hashes against the bundle working hashes."
- "Checks source extension files still match the hashes recorded during staging."
- "Revalidates the source review bundle."
- id: create_1c_extension_validation_plan
mode: local
description: "Create a disposable-base validation plan for a staged 1C extension copy."
status: draft
command: scripts/create_1c_extension_validation_plan.py
output_schema: onec_extension_validation_plan.v1
safety:
- "Does not launch 1C or modify any base."
- "Requires a passing staging check."
- "Requires a passing runner config check when --runner-config is provided."
- "Marks production base, SQL writes, and source extension writes as forbidden."
- "Returns required 1C validation checks and evidence files for a future runner."
- id: check_1c_extension_runner_config
mode: local
description: "Validate safe runner configuration for disposable 1C extension validation."
status: draft
command: scripts/check_1c_extension_runner_config.py
output_schema: onec_extension_runner_config_check.v1
safety:
- "Read-only validation."
- "Rejects production-like base references."
- "Rejects secrets and credentials in runner config."
- "Requires explicit disposable_base_confirmed=true."
- id: create_1c_extension_validation_evidence
mode: local
description: "Create manual evidence templates for a 1C extension validation plan."
status: draft
command: scripts/create_1c_extension_validation_evidence.py
output_schema: onec_extension_validation_evidence_manifest.v1
safety:
- "Does not launch 1C or modify any base."
- "Requires validation plan status ready_for_disposable_validation."
- "Creates pending evidence templates only."
- "Does not mark validation as passed."
- id: check_1c_extension_validation_evidence
mode: local
description: "Check manual evidence files for a 1C extension validation plan."
status: draft
command: scripts/check_1c_extension_validation_evidence.py
output_schema: onec_extension_validation_evidence_check.v1
safety:
- "Read-only validation."
- "Requires every expected evidence file to exist."
- "Rejects evidence files that still contain pending templates."
- "Requires explicit passed/success/ok evidence status."
- "Rejects secret-like key/value text in evidence files."
- id: check_1c_extension_validation_release
mode: local
description: "Aggregate final validation gates for a staged 1C extension."
status: draft
command: scripts/check_1c_extension_validation_release.py
output_schema: onec_extension_validation_release_check.v1
safety:
- "Read-only validation."
- "Requires validation plan status ready_for_disposable_validation."
- "Requires staging check and evidence check to pass."
- "Never allows automatic production apply."
- "Returns validated_for_human_review only after all gates pass."
- id: render_1c_extension_validation_release_markdown
mode: local
description: "Render 1C extension validation release check JSON as Markdown."
status: draft
command: scripts/render_1c_extension_validation_release_markdown.py
output_schema: markdown
safety:
- "Read-only rendering."
- "Preserves the no automatic production apply safety message."