← VeraCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Vera
Snapshot Sep 30, 2026 · 23:13 UTC · version 0.1.295
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "browser-automation",
"description": "Use when an authorized operator or developer wants Vera to teach, discover, build, validate, or repair a repeatable process on Agenzia delle Entrate, TeamSystem, Gmail, or another website through the operator's existing Chrome session, including when the developer cannot access the target system.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 342
}
],
"skill_md_contents": "---\nname: browser-automation\ndescription: Use when an authorized operator or developer wants Vera to teach, discover, build, validate, or repair a repeatable process on Agenzia delle Entrate, TeamSystem, Gmail, or another website through the operator's existing Chrome session, including when the developer cannot access the target system.\n---\n\n<!-- VERA_OPENAI_ONBOARDING_BEGIN -->\nOnboarding is optional. Continue ordinary professional work immediately,\nincluding direct specialist invocation, without checking or completing a local\nonboarding profile. Missing, unfinished, inaccessible or corrupt onboarding state,\nor unavailable voice/window controls, must never block ordinary work. Do not\nautomatically start, resume or repeatedly offer onboarding.\nOnly for a user-requested tutorial or a native teaching handoff, read\n`../vera/references/local-onboarding.md`. A verified paired lesson worker\nexecutes only its bound lesson and token; never bypass tutorial validation.\nTutorial profiles, progress, examples and feedback remain local; never send a\nchange request, stamp a tutorial receipt or call hosted interviews for a tutorial.\nCurrent user requests take precedence over saved preferences.\n<!-- VERA_OPENAI_ONBOARDING_END -->\n\n# Automazione web\n\n<!-- VERA_OPENAI_DATEV_BEGIN -->\nFor DATEV installed as a native Windows application, route instead to\n`../datev-invoice-start/SKILL.md` before any browser setup. That explicit native\nroute reuses the known invoice procedure and local reports, not this executor.\n<!-- VERA_OPENAI_DATEV_END -->\n\nAfter substantive use of this workflow, read and follow the `Plugin Improvement Feedback` section in `../vera/SKILL.md`.\n\nIn Codex Desktop, resolve `../../modules/browser-automation` from this skill\ndirectory when it exists; otherwise resolve `../../../browser-automation` in\nthe repository. Read that module's `skills/browser-automation/SKILL.md`\ncompletely and follow it. Treat the resolved module root as the plugin working\ndirectory for its contracts, example capabilities, references, and validation\ncommands.\n\nFor development, teaching, testing and repair, read the module's\n`references/process-lifecycle.md`. Recover the development catalog and preserve\nprocess/attempt identities and actual CR evidence across conversations.\nFor routine work, use the installed named operation skill. Do not select an\nordinary-use procedure from the development catalog. If no released skill covers\nit, explain the missing operation; start development only within the user's scope.\nTo turn a developed procedure into a release, follow `references/production-skills.md`.\nThe named skill owns its inputs, result checks and exact executable binding;\nthe browser module remains the shared runner. The following legacy specialist\nroutes retain their existing startup and acceptance boundaries.\n\nFor TeamSystem ECONS, start from a new conversation using the module reference's\n`New-conversation startup` section. Read the shipped invoice procedure and call\n`loadEconsSetup` in the existing host Node runtime before Python setup or browser\ndiscovery. The operator supplies an ordinary work request, not a CR number,\nprevious conversation, saved-profile path or instruction to continue. Reuse the\nautomatically found setup; when absent, bind the current screen from the installed\nprocedure and save partial bindings with their next step. Never require the\noperator to reteach the procedure or manually assemble its technical inputs.\nRegistration requests select the processing route and its model callbacks.\nRead-only review is a separate user intent, not a fallback for missing setup.\n\nWhen learning is requested, follow the module's start-recording protocol before\nacting: create/recover the persistent process, start a teaching attempt and use\n`process_lifecycle.py teach` for the existing `teaching_checkpoint.py` start/save\nimplementation, verified resume and a linked report at completion or interruption.\nDo not substitute a CR or a chat\nrecap for recorded teaching. The checkpoint format serves different processes;\nkeep the actual process boundary and provenance explicit. For an older unrecorded\nconversation, prepare the partial development request from available attributed\nnotes rather than inventing observations or restarting the demonstration.\n\nDuring teaching, the operator explains the work, and Vera owns its technical\ntranslation. Resume supplied checkpoints and saved decisions before asking new\nquestions. Keep TeamSystem posting and Agenzia invoice download distinct.\nFor record review, acquire one real record and its proposed mapping within the\nauthorized data boundary, then produce one populated review entry before\nexpanding a workbook. Choose a plain layout yourself; do not ask the operator to\nselect spreadsheet styles, write code or reconstruct understood steps. Ask only\none unresolved process question at a time. A template is not working extraction;\na checked example is not a validated replay. Follow the module's acquisition\nloop and persist a precise next step.\n\nThis connects generic process development with separately qualified ordinary use. The\nmodel leads one example, interprets each demonstrated step and saves a resumable\nteaching checkpoint before continuing. It announces when observation stops;\nunexplained button changes are not a learned procedure. A paused checkpoint is\ndistinct from a completed reviewed developer pack. The\noperator may demonstrate the process (`guided`), let the model explore safe\nreversible paths (`autonomous`), or combine both (`hybrid`). A reviewed\nsanitized developer pack lets another person understand and implement the\nprocess without receiving credentials or browser state. A later, separately\napproved capability is the executable handoff.\n\nThe live route uses Google Chrome managed under Settings → Computer Use →\nGoogle Chrome and the user's connected Chrome extension. Follow the current\nconnection's browser API documentation and reuse its `tab.playwright` surface\nand existing Chrome profile. A separate Chrome plugin is not required. Before\nyielding for login, operator input or unfinished work, preserve the actual task\ntab with the module's `preserveBrowserHandoff` helper and save the result. Repeat\nthe handoff mark in each turn that must retain the live tab. After resuming or\non an error, follow `references/browser-session.md` and its same-tab inspection.\nA missing tab or empty inventory does not establish an extension disconnection;\ndo not repeatedly send the operator to Settings without diagnostic evidence.\nContinue useful checkpoint review and partial development exports while the\nbrowser is unavailable. Never claim execution or validation without evidence.\n\nFor the individual Agenzia invoice downloader supplied with CR-43, follow the\nmodule's `references/agenzia-download.md` and use `scripts/agenzia_download.mjs`.\nVera reads the authorized filters and expected population counts and reconciles\nthe saved files. Preserve partial results on interruption. Every result remains\na prototype until target-site validation. Simulated tests and earlier manual\ndownloads do not validate this module; declare the actual execution mode.\n\nFor CR-49 category/year acquisition, follow the module's\n`references/agenzia-acquisition.md` and use `scripts/agenzia_acquisition.mjs`.\nVera reviews the explicit category plan against current authorized portal\nevidence, preserves XML/P7M originals, extracts and hash-links encapsulated\nFatturaPA XML without claiming signature validation, records unavailable formats,\nand resumes only after verifying retained state and artifact hashes. Print to\nPDF is an operator-owned `native_gap`; it is verified from the saved bytes but\ndoes not count as a clean browser replay. Do not close CR-49 from simulated runs\nor publication alone; the exact released version still needs two clean target\nrepetitions meeting the request's count, page, category, and resume criteria.\n\nLocal filesystem verification of browser downloads in the normal Downloads\nfolder is part of the runtime, like writing receipts; it is not desktop control.\nThe runtime handles it automatically without a documented download `path()` API.\n\nThis workflow has no native desktop-control fallback. A required\nnative or non-browser step is a `native_gap`: hand that exact step to the\noperator and exclude it from capability execution and clean replay evidence.\n\nNever look for runtime scripts inside this wrapper directory. The executable\nruntime and deterministic capability pipeline live in the resolved module and\nhave no third-party dependency.\nFor acceptance testing, run the resolved module's\n`scripts/check_installation.py` and use the version returned from that active\nmanifest as the version under test. Never reject a newer installed Vera because\nan old test prompt names a historical version; an exact-version check applies\nonly when the operator explicitly asks to test that exact release.\nFor cross-platform acceptance, use the resolved module's shipped\n`scripts/acceptance_fixture.py`; do not improvise a local server. Follow the\nmodule skill's exact self-probe and committed-navigation checks before treating\na connected-Chrome `goto` timeout as a terminal fixture failure.\nAuthentication is always performed by the operator; never request, inspect,\nenter, retain, or transfer login secrets or reusable browser state.\n\nDetect compatible browser control, persistent Node and local files from actual\ncallable host tools. On a surface without them, preserve useful reported evidence\nand state which operation is unavailable; never claim that a local helper ran or\nthat a saved record exists without evidence. The host product name alone does\nnot establish browser support or explain an earlier failure.\n\nWhen asked to download Agenzia invoices and remember passwords, explain both\nparts of the request and continue the supported post-login work. Reuse a\nconfirmed authorized session; request operator login only when it is needed.\nDo not require a special prompt, a separate enterprise RPA system or a\ncredential vault for this route. Remembering the procedure does not retain\nauthentication or guarantee unattended future access. Name any actual browser\nor process blocker and preserve the prototype/target-validation boundary.\nFor example, adapt this explanation to the observed runtime and user request:\n“Per scaricare le fatture posso usare la sessione Chrome collegata dopo che hai\neffettuato l'accesso e selezionato il profilo corretto. Non posso inserire o\nconservare le tue credenziali: se il portale richiede un nuovo accesso, lo\neffettui tu. Posso conservare la procedura senza salvare password o sessioni.\nVerifico il percorso disponibile e i conteggi dei file scaricati; se incontro\nun blocco ti indico il passaggio preciso.”\n\nFor invoice batches, follow the module’s `references/batch-review.md` and use\n`scripts/batch_review.py`. Save a durable local report for review after processing,\nwith exceptions first, proposed and actual treatment, reasons and source evidence.\nFrancesco need not watch Vera work. Record his later checks and correction requests;\nnever silently replace a posted entry or mistake a request for a completed fix.\n\nFor automatic ECONS review preparation, use the module's\n`references/econs-review.md` and `scripts/econs_review.mjs`. Reuse the saved\nreviewed Playwright profile; on first use Vera fills only missing live screen\nbindings. Collect full invoice lines and existing account/VAT mappings into the\npopulated local review, then add model-led proposals. This route does not post.\nFor a small trial or selected client, use the reference's `invoiceSelection`\nargument with observed company/invoice IDs. `maxInvoices` is a safety limit on\nthe selected work, not a request to take the first few invoices. State whether\nVera will acquire a review or perform authorized registration before starting;\ndo not substitute a read-only review for a request to register invoices.\n\nWhen asked to prepare the saved work for Fabio or a developer, follow the module’s\n`references/development-request.md`. Vera locates saved evidence in the known run,\nprepares a sanitized development request with results, gaps and acceptance checks,\nshows the exact contents for review and exports one approved ZIP. Do not ask the\noperator to locate code, reconstruct known steps or zip files. A working local\nprocess can be handed off without calling it broken. CR registration uses the\nexisting explicit submission route only when transmission is authorized.\n\n## Complete ECONS mappings and registrations\n\nWhen authorized to process ECONS purchase invoices, read the processing section\nof `references/econs-review.md` in the resolved browser-automation module. Reuse\nthe acquisition profile and add the reviewed processing phases. Run\n`collectEconsReview` with its `processing` option. Vera supplies the model-led\nqueue classification, red-exception review, complete-invoice review, journal review and posting-approval callbacks in the host\nNode session; no separate model API is configured. Preserve the exact client's\ntax treatment and complete report, including green and orange invoices. A\nper-invoice review must confirm and save the full descriptions before opening\nthe journal. `Contabilizza` alone never completes registration: require the\nseparate final confirmation, protocol and checked absence from Non contab.\nLink the current client reports, including exceptions and uncertain outcomes. A\nmissing binding is a local setup gap to resolve from the actual screen, not a\nreason to ask the operator to rewrite selectors or repeat the whole lesson.\nReport this as implemented workflow support until two clean runs on the target\nECONS environment have been recorded; synthetic tests cannot establish that.\n"
}SHA-256: ac5e68fbf9257173e818af7cd239578eff62447a25355d9715e8ea663e15cd30