{"id":363157,"date":"2026-09-02T10:00:17","date_gmt":"2026-09-02T10:00:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/secretaire\/"},"modified":"2026-09-22T14:44:33","modified_gmt":"2026-09-22T14:44:33","slug":"tlloancy-secretaire","status":"publish","type":"plugin","link":"https:\/\/rhg.wordpress.org\/plugins\/tlloancy-secretaire\/","author":22011295,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.6","stable_tag":"1.0.6","tested":"7.1.2","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"tlloancy Secr\u00e9taire","header_author":"tlloancy","header_description":"The connector writes a paper; you file it. Past is the archive. General papers, or a country\u2019s drawers.","assets_banners_color":"d0c4ac","last_updated":"2026-09-22 14:44:33","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/donorbox.org\/wordpress-plugins","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":204,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"tlloancy","date":"2026-09-02 10:26:57","revision":3677744},"1.0.1":{"tag":"1.0.1","author":"tlloancy","date":"2026-09-02 10:26:57","revision":3677744},"1.0.4":{"tag":"1.0.4","author":"tlloancy","date":"2026-09-02 14:15:32","revision":3678149},"1.0.5":{"tag":"1.0.5","author":"tlloancy","date":"2026-09-21 10:46:40","revision":3705419},"1.0.6":{"tag":"1.0.6","author":"tlloancy","date":"2026-09-22 14:44:33","revision":3707593}},"upgrade_notice":{"1.0.6":"<p>Desk sheet counts, unfinished titles you can resume, and a filed sheet you can open and revise.<\/p>","1.0.4":"<p>Drafts can include document CSS. Scripts and remote stylesheets stay blocked.<\/p>","1.0.3":"<p>The quill no longer stays busy after the draft is on the paper.<\/p>","1.0.2":"<p>Drafts use only the connectors you checked for this plugin.<\/p>","1.0.1":"<p>Desk styles load again. General papers. Name is tlloancy Secr\u00e9taire.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3677676,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3677676,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3677676,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3677676,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.4","1.0.5","1.0.6"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[251511,83,2353,278844,278845],"plugin_category":[],"plugin_contributors":[232640],"plugin_business_model":[],"class_list":["post-363157","plugin","type-plugin","status-publish","hentry","plugin_tags-abilities","plugin_tags-admin","plugin_tags-ai","plugin_tags-paperwork","plugin_tags-qualiopi","plugin_contributors-tlloancy","plugin_committers-tlloancy"],"banners":{"banner":"https:\/\/ps.w.org\/tlloancy-secretaire\/assets\/banner-772x250.png?rev=3677676","banner_2x":"https:\/\/ps.w.org\/tlloancy-secretaire\/assets\/banner-1544x500.png?rev=3677676","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tlloancy-secretaire\/assets\/icon-128x128.png?rev=3677676","icon_2x":"https:\/\/ps.w.org\/tlloancy-secretaire\/assets\/icon-256x256.png?rev=3677676","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>tlloancy Secr\u00e9taire<\/strong> is a desk inside wp-admin: the <strong>WordPress AI connector<\/strong> writes a paper, you <strong>file<\/strong> it, and <strong>Past<\/strong> keeps the pile \u2014 search, print, mail, import. That is the difference with a normal chat: the draft is not lost in a thread. No key is stored in this plugin. If no connector is ready, the paper <strong>templates<\/strong> still work.<\/p>\n\n<p><strong>General<\/strong> (the default address) is any document you name: CV, cover letter, minutes, invoice, a letter. A <strong>country<\/strong> adds that place\u2019s drawers (Qualiopi in France, ONSS in Belgium\u2026). Nothing is filed with an authority. You send the paper.<\/p>\n\n<h3>The house<\/h3>\n\n<ul>\n<li><strong>Address<\/strong> (Settings) is General, or a country. General is paperwork with no administration. A country is not copied from France: Belgium has ONSS, Germany the Rundfunkbeitrag, Qu\u00e9bec the SAAQ.<\/li>\n<li><strong>Drawers<\/strong> hold folders. <strong>Papers<\/strong> (General) is one tile: name the folder, write, file. Country drawers are that address\u2019s pains (Qualiopi only in France; Hacienda only in Spain).<\/li>\n<li><strong>Folders<\/strong> historize who \/ what \/ when. A ticket folder can open a linked Justice folder.<\/li>\n<li><strong>Import<\/strong> on Past is the backup: HTML, text, PDF, or a ZIP of papers you already have.<\/li>\n<\/ul>\n\n<h3>Training \/ Qualiopi<\/h3>\n\n<p>Quote, needs analysis, attendance sheet, certificate, quiz, dated <strong>watch proof<\/strong>, accessibility mentions. You file the RNQ (or another notice) on the drawer; nothing is fetched from the public web.<\/p>\n\n<h3>WordPress AI<\/h3>\n\n<p>Uses <code>wp_supports_ai()<\/code> \/ <code>wp_ai_client_prompt()<\/code>. Choose the connector under <strong>Settings \u2192 Connectors<\/strong>. Abilities: <code>secretaire\/list-drawers<\/code>, <code>secretaire\/list-folders<\/code>, <code>secretaire\/draft-paper<\/code>.<\/p>\n\n<p>Guides: <code>docs\/USER-GUIDE.md<\/code> (EN) and <code>docs\/MODE-DEMPLOI.md<\/code> (FR).<\/p>\n\n<h3>External services<\/h3>\n\n<p>When a <strong>WordPress AI connector<\/strong> is active, prompts, folder notes, and any working papers you filed on a drawer are sent to <strong>that<\/strong> provider (the one you configured). This plugin does not pick a vendor. It does not request third-party websites.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>tlloancy-secretaire<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate <strong>tlloancy Secr\u00e9taire<\/strong>.<\/li>\n<li>Open the <strong>tlloancy Secr\u00e9taire<\/strong> menu. On <strong>General<\/strong>, name a paper and file it \u2014 or pick a country for that address\u2019s drawers.<\/li>\n<li>Optional: <strong>Settings \u2192 Connectors<\/strong> \u2014 install the AI plugin if needed, add a connector, then use <strong>Ask the connector<\/strong> on a folder.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20is%20this%20different%20from%20chatting%20with%20the%20ai%20connector%3F\"><h3>How is this different from chatting with the AI connector?<\/h3><\/dt>\n<dd><p>The connector writes. This desk <strong>files<\/strong> the draft in a dated folder. <strong>Past<\/strong> is the archive: search, print, mail, import. A chat does not keep that pile.<\/p><\/dd>\n<dt id=\"what%20is%20general%3F\"><h3>What is General?<\/h3><\/dt>\n<dd><p>No country. One drawer for any paper you name (CV, letter, minutes\u2026). <strong>Import<\/strong> files you already have. Pick a country in Settings when you need that place\u2019s offices.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20ai%20connector%3F\"><h3>Do I need an AI connector?<\/h3><\/dt>\n<dd><p>No. Every paper has a template. The connector fills it from your notes.<\/p><\/dd>\n<dt id=\"where%20do%20i%20put%20an%20api%20key%3F\"><h3>Where do I put an API key?<\/h3><\/dt>\n<dd><p>Not here. <strong>Settings \u2192 Connectors<\/strong>, on the WordPress AI plugin.<\/p><\/dd>\n<dt id=\"why%20did%20it%20call%20a%20connector%20i%20did%20not%20check%3F\"><h3>Why did it call a connector I did not check?<\/h3><\/dt>\n<dd><p>It must not. <strong>Connector Approvals<\/strong> is the list for this plugin. Only checked cards are used. Unchecked cards (a dead Compatible Endpoint, Ollama, OpenRouter\u2026) are skipped.<\/p><\/dd>\n<dt id=\"the%20connector%20replies%20with%20nothing%2C%20or%20takes%20a%20minute\"><h3>The connector replies with nothing, or takes a minute<\/h3><\/dt>\n<dd><p>That is a <strong>connector<\/strong> setting, not tlloancy Secr\u00e9taire. Open <strong>Settings \u2192 Connectors<\/strong>, edit the OpenAI-compatible (or Ollama) card, and turn on <strong>Disable thinking<\/strong>. Context length lives there too. If the draft is still empty, file the <strong>template<\/strong>.<\/p><\/dd>\n<dt id=\"ask%20finished%20but%20file%20stays%20grey\"><h3>Ask finished but File stays grey<\/h3><\/dt>\n<dd><p>The draft is on the paper; File and Ask must unlock. Update to 1.0.3 if the quill stays on \u201cwriting\u201d.<\/p><\/dd>\n<dt id=\"can%20the%20connector%20style%20the%20paper%3F\"><h3>Can the connector style the paper?<\/h3><\/dt>\n<dd><p>Yes. The draft may include a <code>&lt;style&gt;<\/code> block for that document (letterhead, table, totals). Scripts, remote fonts, <code>@import<\/code>, and external stylesheets are stripped. Plugin CSS stays in files (<code>paper.css<\/code>) and is printed through WordPress. The brief is still facts; you may mention a look (invoice, letter) if you want.<\/p><\/dd>\n<dt id=\"is%20this%20legal%20or%20tax%20advice%3F\"><h3>Is this legal or tax advice?<\/h3><\/dt>\n<dd><p>No. Drafts to edit. Deadlines and official texts are yours to check.<\/p><\/dd>\n<dt id=\"will%20other%20countries%20appear%3F\"><h3>Will other countries appear?<\/h3><\/dt>\n<dd><p><strong>General<\/strong> ships first. Belgium, Switzerland, Germany, Spain, Italy, the United Kingdom, the United States, and Canada (Qu\u00e9bec) ship with France. Pick the address under Settings.<\/p><\/dd>\n<dt id=\"how%20do%20i%20write%20a%20quote%3F\"><h3>How do I write a quote?<\/h3><\/dt>\n<dd><p>Open <strong>Training<\/strong>. Click <strong>Quote<\/strong>. You land on the folder. <strong>New folder<\/strong> is only for another session.<\/p><\/dd>\n<dt id=\"where%20was%20i%3F\"><h3>Where was I?<\/h3><\/dt>\n<dd><p><strong>Desk<\/strong> shows the drawer vignettes. The last drawer stays marked. Folders remember the last paper. Opening a paper and going back to the desk stays on the same page.<\/p><\/dd>\n<dt id=\"can%20i%20import%20papers%20or%20a%20whole%20folder%3F\"><h3>Can I import papers or a whole folder?<\/h3><\/dt>\n<dd><p>Yes. <strong>Past \u2192 Import<\/strong>. HTML, text, PDF, or a <strong>ZIP<\/strong>. On the desk, a ZIP becomes a folder; loose files become a new folder. Inside a folder, files (and ZIP contents) become papers.<\/p><\/dd>\n<dt id=\"how%20do%20i%20know%20what%20a%20folder%20still%20needs%3F\"><h3>How do I know what a folder still needs?<\/h3><\/dt>\n<dd><p>Open the folder. <strong>Past<\/strong> lists each expected paper as <strong>Filed<\/strong> or <strong>Missing<\/strong>. The desk shows <strong>Complete<\/strong> or the missing names on each folder. File a <strong>rule<\/strong> on the drawer (latest RNQ for Training, a BOFIP page for Taxes\u2026) so the list follows your text. Without a file, the built-in papers are used.<\/p><\/dd>\n<dt id=\"how%20do%20i%20send%20or%20destroy%20a%20filed%20paper%3F\"><h3>How do I send or destroy a filed paper?<\/h3><\/dt>\n<dd><p>In <strong>Past<\/strong>: <strong>Send<\/strong> on a paper mails that sheet (body + PDF). <strong>Send<\/strong> on a folder (envelope mark) mails the whole chemise \u2014 the list in the body, one PDF per filed paper. <strong>Shred<\/strong> (shredder mark) deletes that one paper or folder. <strong>Fireplace<\/strong> (hearth mark) burns the whole pile \u2014 every paper in the folder, or every folder in the drawer. A hint under each mark says which. Permanent, no trash.<\/p><\/dd>\n<dt id=\"is%20the%20admin%20in%20french%3F\"><h3>Is the admin in French?<\/h3><\/dt>\n<dd><p>The source language is English. Every UI string is gettext (<code>tlloancy-secretaire<\/code>). A complete <strong>French<\/strong> catalog ships in <code>languages\/<\/code>. Set the site language to Fran\u00e7ais (<code>fr_FR<\/code>). If a leftover <code>wp-content\/languages\/plugins\/tlloancy-secretaire-fr_FR.*<\/code> is mixed English\/French, delete those files and reload.<\/p><\/dd>\n<dt id=\"how%20many%20papers%20does%20ask%20write%3F\"><h3>How many papers does Ask write?<\/h3><\/dt>\n<dd><p>As many as the notes need, up to 16 in one request. They are filed as they finish. One paper of the current kind still lands in the editor for you to File. How many write at once is <strong>Settings \u2192 Quills at once<\/strong> (1\u20138). A folder can hold more than 16; that cap is one Ask.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>On the desk, each folder shows how many sheets it holds. Open that count for the first five titles.<\/li>\n<li>A sheet that fails stays on the folder. Resume writes only those, one at a time. Empty the list drops the follow-up.<\/li>\n<li>Clicking a filed paper opens it in Source and Preview. Ask can revise it.<\/li>\n<li>A folder you already named keeps its name. With no name, the connector chooses one and a Connector mark shows that.<\/li>\n<li>When an Ask finishes, the report stays until you leave it or dismiss it.<\/li>\n<li>A sun or moon follows the site clock on the desk.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Folder health is a collapsible Complete \u00b7 n\/n list.<\/li>\n<li>Ask may write several papers (16 per request) and file them as they finish. Parallel quills: Settings.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Ask may lay out the paper with a sanitized <code>&lt;style&gt;<\/code> block (no scripts, no remote CSS). Desk and print keep a paper stylesheet in plugin files.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>After Ask finishes, the quill stops and File \/ Ask work again. A late job poll no longer freezes the form on \u201cwriting\u201d.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Ask the connector only on cards <strong>checked<\/strong> for this plugin in Connector Approvals. Unchecked providers are never called.<\/li>\n<li>Fix: Ask actually calls Google. A <code>method_exists<\/code> check skipped the AI client\u2019s magic methods and always fell back to the template.<\/li>\n<li>Admin menu icon is a 20px silhouette so it stays sharp on the dark menu.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: desk CSS and JS load on the admin screens (menu slug is still <code>secretaire<\/code>). Icons stay 24px.<\/li>\n<li>General address: any paper you name (CV, letter, minutes\u2026). Import stays the backup.<\/li>\n<li>Display name <strong>tlloancy Secr\u00e9taire<\/strong>. Connector readiness uses the public AI API only.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Desk: France drawers, folders, print, connector drafts, abilities.<\/li>\n<li>Country packs: BE, CH, DE, ES, IT, GB, US, CA (Qu\u00e9bec) \u2014 each with its own offices and papers.<\/li>\n<li>English source strings, French translation (<code>languages\/tlloancy-secretaire-fr_FR<\/code>).<\/li>\n<\/ul>","raw_excerpt":"A home desk for paperwork. The connector writes; you file. Past is the dated archive.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/363157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=363157"}],"author":[{"embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tlloancy"}],"wp:attachment":[{"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=363157"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=363157"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=363157"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=363157"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=363157"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=363157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}