Jump to content

wbmnfktr

Members
  • Posts

    2,212
  • Joined

  • Last visited

  • Days Won

    58

Posts posted by wbmnfktr

  1. Ran into this issue here in another project using the latest version from the module directory.

    Quote

    Warning: include_once(/var/www/html/site/modules/AgentTools/AgentToolsSitemap.php): Failed to open stream: No such file or directory in /var/www/html/site/modules/AgentTools/AgentTools.module.php on line 243

    Warning: include_once(): Failed opening '/var/www/html/site/modules/AgentTools/AgentToolsSitemap.php' for inclusion (include_path='.:/usr/share/php') in /var/www/html/site/modules/AgentTools/AgentTools.module.php on line 243

    The file AgentToolsSitemap.php in the module directory is actually named AgentToolsSiteMap.php (capital M) and also renamed the class.

    2026-04-10_02-34.png.142470170553f3335544a6a8986ab969.png

    I renamed the file and it seems to work for now.

     

    Also ran (not me, the agent) into some other issue. 

    Spoiler

    AgentTools Issues

    --at-sitemap-generate not accessible from --at-eval

    Problem

    The sitemap can only be generated via the dedicated CLI flag:

    php index.php --at-sitemap-generate    # works
    

    But calling it from --at-eval fails:

    php index.php --at-eval 'wire("at")->sitemap()->generate();'
    # ERROR: Method AgentTools::sitemap does not exist or is not callable in this context
    

    Root cause

    $at->sitemap is a property, not a method. AgentTools::get('sitemap') returns an AgentToolsSitemap instance via the helper system (line 316–319 of AgentTools.module.php). But PHP's method syntax $at->sitemap() looks for an actual sitemap() method on the AgentTools class, which doesn't exist.

    The correct eval call requires chaining the property access with the method call:

    // Works:
    wire('at')->sitemap->generate();
    
    // Fails — treats sitemap as a method call:
    wire('at')->sitemap()->generate();
    

    Why this matters

    AI agents frequently use --at-eval for quick API calls. The sitemap is documented as a first-step orientation tool, so agents will naturally try to call it from eval. Without a clear API path, they hit the error and then see the full help output (which confusingly lists --at-sitemap-generate as a CLI flag, not an API method).

    Suggested fix

    Either (or both):

    1. Add a sitemap() method to AgentTools that returns the helper instance — this makes wire('at')->sitemap()->generate() work naturally from eval:

      public function sitemap() {
          return $this->getHelper('sitemap');
      }
      
    2. Document the correct eval syntax in agent_cli.md and AGENTS.md — use property access, not method call:

      php index.php --at-eval 'wire("at")->sitemap->generate();'
      

    Option 1 is cleaner since migrations has the same property-only pattern and would benefit from the same treatment.

    Environment

    • AgentTools v2 (ProcessWire module)
    • ProcessWire 3.0.247
    • PHP 8.4, DDEV

    pw-at.sh wrapper does not support sitemap-generate

    Problem

    The wrapper script (.agents/skills/processwire-agenttools/scripts/pw-at.sh) only passes through a fixed set of subcommands:

    eval, eval-b64, stdin, stdin-b64, cli, migrations-apply, migrations-list, migrations-test
    

    Any other command exits with the usage message. This means sitemap-generate cannot be invoked through the wrapper:

    bash .agents/skills/processwire-agenttools/scripts/pw-at.sh sitemap-generate
    # prints usage, exits 1
    

    Agents must fall back to calling ddev exec php index.php --at-sitemap-generate directly, which breaks the "always use the wrapper" convention documented in AGENTS.md.

    Suggested fix

    Add sitemap-generate (and any future helper CLI actions) to the wrapper's case statement. One approach:

    # In the argument validation case:
    sitemap-generate|skills-install)
      [[ $# -eq 0 ]] || { echo "$mode does not accept positional arguments" >&2; exit 1; }
      ;;
    
    # In the execution case:
    sitemap-generate)
      run_php "--at-sitemap-generate"
      ;;
    skills-install)
      run_php "--at-skills-install"
      ;;
    

    Or make the wrapper generic: pass any unrecognized subcommand through as --at-<subcommand> to let AgentTools handle validation server-side.

     

    • Like 2
  2. 52 minutes ago, ryan said:

    and install to "/.agents/..."

    Various agents have various needs unfortunatelly.

    Not sure if this changed recently but in order to test my SKILLS I needed to create various folders (as symlinks) like:

    • .agent
    • .claude
    • .cline
    • .factory
    • .goose
    • .kilocode
    • .kiro
    • .pi
    • .roo
    • .windsurf

    Like for the ~/.config/ folder on Mac and Linux also the dot is necessary.

    Another option could be using the ~/.agents/ folder but here as well, not all agents support this yet.

  3. Just created a new test project and added the module. 

    One thing I noticed immediately was that in my DDEV environment I needed to prefix the commands in order to run them in the actual container.

    // non-DDEV environment
    php index.php --at-eval 'echo wire()->pages->count() . " pages\n";'
    
    // DDEV environment
    ddev exec php index.php --at-eval 'echo wire()->pages->count() . " pages\n";'

     

    • Like 2
  4. I'm happy to see you found your workflow using Claude Code. 🙂

    A few things I'd suggest to make it a bit more future-proof and less focussed on one tool (Claude/Claude Code).

    I'm not sure if you use a CLAUDE.md file yet but in case you do or when you start using it, do this:

    In CLAUDE.md just add:

    @AGENTS.md

    And then write your instructions in/to AGENTS.md.

    The reason is simple:

    CLAUDE.md just works for Claude, but AGENTS.md works for almost any other AI agent.

    This way, either in a CLAUDE.md or AGENTS.md, you can customize comments in issues, like:

    ## GitHub issue and PR comments
    
    When responding in GitHub issue or PR comments:
    
    - Be concise, direct, and helpful.
    - Start with the answer first.
    - Use short paragraphs or bullets when useful.
    - Avoid unnecessary disclaimers, hedging, or repetition.
    - If the user asks for a change, give the exact action or code needed.
    - If more context is needed, ask one clear follow-up question.
    - Keep the tone professional, friendly, and technical.
    - Do not write long explanations unless explicitly requested.
    - Always add this as the last line in comments: [🤖 Answered by Joshi - Ryan's custom AI Agent.]

    Another thing you could change is updating the Claude settings.json to disable or customize the attribution line in commits and pull requests.

    • Like 4
  5. The closest to a traditional setup for me would probably be:

    1. VS Code (or any fork or the Codium version)
    2. plus one of these extensions: Kilo Code, RooCode or Cline
    3. Coding Plan from either Z.AI or MiniMax.io

    2026-03-07_15-10.thumb.png.7e887a9130e9d4d2ce079ec43e0cf878.png

    VS Code an be installed almost everywhere without adding Node.js or other packages.
    The extensions can be installed from within VS Code but as they are quite similar, you should probably test them all.
    I kept Kilo Code as it felt to be the most stable and reliable one.

    Also Kilo Code offers additional features but only when using their subscription, for daily usage you can bring your own API keys and use those.

    • Like 1
  6. A little heads-up: WirePDF ≠ WirePDF

    I am in the process of upgrading a pretty old project, still running 3.0.240. I wanted everything up to date from ProcessWire to each and every module. So I was happy to see new version of WirePDF and went with it.

    image.thumb.png.41f7fc4d7497404271935f65d8de5447.png

    Right after finishing the installation error messages showed up, Pages2Pdf broke and was messing with me, PDF generation threw errors, and so on. 

    I started digging and found the problem: the listed update belongs to a totally new module called WirePDF (by @maximus) and has nothing to do with the file in the Pages2Pdf module folder.

    So there is a weird name collision and hijacking of the old module happening in the ProcessWire Upgrade (by @ryan) module right now. 

     

    • Confused 1
  7. That's a great find @gmclelland - I never use markup regions so wouldn't have noticed this at all. Ever.

    I compared the new details with the existing skill, this was the result:

    Spoiler

    Comparison Analysis
    Missing Details from SKILL.md

    1. Alternative ID Attributes (pw-id, data-pw-id)

    - The skill file mentions id attribute but doesn't document that pw-id and data-pw-id are alternatives that are removed from final output (invisible to CSS/JS)
    - From new file (line 68-70): "you are also welcome to use "pw-id" or "data-pw-id" attributes instead. They do the same thing, but only ProcessWire can see them – they are removed from the final output"

    2. <region> and <pw-region> Placeholder Tags

    - Completely missing from skill file
    - From new file (lines 74-77): These tags define regions where only inner HTML is used, wrapping tags don't appear in final markup
    - Example: <region id="something">...</region> or <pw-region id="something-else">...</pw-region>

    3. data-pw- Prefix Alternatives

    - Skill file only shows pw- prefix attributes
    - From new file (line 128): Any pw-action attribute can also be data-pw-action format

    4. Debug Output Format Details

    - Skill file mentions the debug comment but doesn't explain the output format
    - From new file (lines 227-236): Shows format is number. action => region-id ... tag plus timing info

    5. Performance Considerations

    - Completely missing from skill file
    - From new file (lines 254-258): Markup regions have overhead compared to direct/delayed output. Not recommended for sites with "really heavy amounts of output"

    6. Target Audience Guidance

    - Missing from skill file
    - From new file (lines 254-258): Best for those who like direct output simplicity but want delayed output benefits. Good for front-end developers and ProcessWire newcomers

    ---

    Recommended Additions to SKILL.md

    | Section                   | Addition                                                                                       |
    | ------------------------- | ---------------------------------------------------------------------------------------------- |
    | Enable Markup Regions     | Add note about pw-id/data-pw-id being invisible alternatives to id                             |
    | Region Definition Example | Add <region> and <pw-region> tag syntax with explanation that wrapper doesn't appear in output |
    | Region Action Attributes  | Add note that data-pw-_ prefix works as alternative to pw-_                                    |
    | Debugging Regions         | Expand with output format explanation and timing info                                          |
    | New Section: Performance  | Add warning about overhead for heavy output sites                                              |
    | New Section: When to Use  | Add guidance on target audience and use cases                                                  |

     

    I guess we should add it. Right?

  8. On 2/27/2026 at 2:59 PM, gebeer said:

    Where I would disagree is having each learning also in skills.

    It's not about adding every new learning into a new skill. It's about updating existing skills with new learnings. For example: in case a modules skill always returns an error when creating backend pages, that skills needs an update and I feed the learnings back into that skill.

     

    On 2/27/2026 at 2:59 PM, gebeer said:

    Another interesting approach that I just found...

    Yes, but I honestly don't like to have too much external requirements in my projects. I'd like to test Context+ (https://contextplus.vercel.app/) yet the overall setup is way too much hassle. For super big projects maybe, but for all those smaller to medium sized projects that's way off my comfort zone.

    I tried Gastown, SpecKit, OpenSpecs, Beads, BMAD ... whatever else there was. They always came with some kind of setup and bloat. Taking a day or two off meant I couldn't even remember I installed and used that tool in my projects or forgot to start a new task in a certain way.

    Skills are always there. They live in my OpenCode config folder now. They are portable, too. Way easier and no headaches. At least for me.
    Of Course everyone else has their own prefered way of doing things and may have the capactity to remember each tool and setup for each project. I don't. 😂

     

    On 2/27/2026 at 2:59 PM, gebeer said:

    So many things still to explore 🙂 

    Way too many things. Way too little hours per day for that. 🙈

     

    On 2/27/2026 at 3:00 PM, bernhard said:

    What problem do you solve?

    I try to solve the knowledge gap that most LLMs have in regards to ProcessWire. There isn't that much of training data for ProcessWire as there is for NextJS, React, Symphony, Laravel, and of course Java and C++. LLMs know the basics or "invent" new ways of doing core things, like URL hooks. PHP itself was never a real problem - just to make this clear.

    I found that skills are a great way to solve this - for me. I can use way cheaper models, like Kimi K2.5 or Minimax M2.5, with way better outcome using skills. Sure I could just burn through my $200+ Claude Code/Cursor plan but babysitting that agent to fix issues it isn't even aware off while it would repeat those same mistakes over and over again with a smile the next time - I was tired of that. That's why I played a lot with the JS-tools out there.

    On 2/27/2026 at 3:00 PM, bernhard said:

    What is the goal? // What would be the expected outcome? // What would be the benefit (compared to other approaches)?

    Paying less money and investing less time for a way better outcome. I could run 10 agents in parallel that check each others work and fix issues, report back and forth, and could then somewhat get what I was looking for but it never felt right and looking at the code often even scared me. My skills contain about 80-90% of ProcessWire knowledge. Not perfect in every aspect, maybe sometimes even outdated examples or older PHP code (<8.x) but the results turn out to be great. 

    On 2/27/2026 at 3:00 PM, bernhard said:

    What is the solution?

    For me at least it is: SKILLS, plus AGENTS.md thats referencing those skills, concepts/specs/PRDs
    For now.
    Maybe next week there is another concept that lives locally without any big setup in a folder that does everything I want and need.

    On 2/27/2026 at 3:00 PM, bernhard said:

    How would it help me with my day to day work?

    I don't know. What's your (daily) workflow? What's ruining your day to day work? What annoys you when working on something?

    On 2/27/2026 at 3:00 PM, bernhard said:

    What would be the benefit [...]?

    My benefit is:

    • I don't need $200 Claude/Cursor plans to get something done.
    • I don't need Opus/Sonnet 4.6, Codex 5.3-x-whatever-they-named-it.
    • I get MVPs up and running in ProcessWire like it was a NextJS/React project.

     

    Look into the ProcessWire skills here and you will notice that it's actually just the documentation - which is missing or is incomplete in so many LLMs. Sometimes with additional details, other code examples, or sometimes it's a missing part of the docs like for URL Hooks - as they actually only exist as a blog post right now - yet I can use them now without issues.

    That's what I tried to fix and for the moment this fixes it.

    Is that the best way to go? I don't think so. But I am lazy and tired. And this works. For me.
    I don't want to learn yet another tool or framework to get things done. Just to learn another framework and tool tomorrow and next week.
    I don't need 10-20 agents per project to run 24/7. I'm not trying to rebuild SAP/Sage or Asana/Trello/Jira.

     

    But let's find out how my (lazy) approach might help you or give you ideas.

    • Like 5
  9. For those who want to play around with that workflow:

    https://github.com/webmanufaktur/pwaiworkflow-profile 

    • DDEV setup (customise .ddev/config.yaml to your needs)
    • clean ProcessWire installation
    • clean database backup: site/assets/backups/database/clean-start.sql
    • all necessary modules (core, 3rd party)
    • Skills in .agents + custom symlinks for various IDE/tools
    • AGENTS.md ready to go

    Testing & Demo:

    Branch: feature-restaurants-directory
    Specs file: https://github.com/webmanufaktur/pwaiworkflow-profile/blob/feature-restaurants-directory/specs/restaurants-directory.md

    Ask your agent to run that file and see what happens. Results may vary. 
    Minimax M2.5 was fine, Z.AI GLM-5 did way better.

    Tell me your results and findings if you like to share.

     

    Reference result with Claude Sonnet 4.6 for comparison:
    https://github.com/webmanufaktur/pwaiworkflow-profile/tree/feature-restaurants-directory-claude-sonnet-46

    • Like 1
  10. Not that long ago I started with a completely new approach in regards to ProcessWire an AI.

    I had some rules, commands, and settings for Windsurf and Cursor months back but nothing really worked as good as I hoped it would and lost interest. Even switched to Astro, NextJS, BHVR, and other JS solutions. 🙈

    ProcessWire-based development went back to 80% hand-coded with some assistance on the sidelines, mostly debugging, security, and tasks that were more PHP-focussed than ProcessWire-related.

    Then AGENTS.md and SKILLS came up.

    Custom instructions, guardrails, links to docs and example code. Almost similar to a README.md but for AI coding tools. The main problem still was the knowledge gap in models. They just didn't know enough about ProcessWire works and how to do more complex stuff.

    With SKILLS this changed.

    I pulled the entire docs, some blog posts, took some of the old recipes and let the AI do its magic.

    image.thumb.png.5ba7a967ad2d9c5ea0153732d016e2f2.pngThe AI repackaged the entire docs, custom instructions, module docs, PHP best practices, and everything else into skills.

    I installed new and clean instances of ProcessWire and just asked the AI to build things. Yeah... didn't work as expected.

    I gave the AI more tools to work with and fixed the AGENTS.md:

    • RockMigrations - for creating and updating templates, fields, and pages 🥰
    • AutoTemplateStubs - for details about existing templates and fields 🤯
    • ProcessDatabaseBackups - can be a good idea to give your tools a database file it can look into without the need to bootstrap ProcessWire into a custom script or similar.
    • Inline comments in config.php to mark things as important or noteworthy otherwise that file would be ignored
    • /init - a custom action OpenCode, Claude Code, and some other tools have to initialize the whole project 💯

    Now my tools have all the skills and know how to use RockMigrations to create templates, fields, and pages, can trigger database backups and look into the made changes, know how to build a custom module.

    Even custom page classes or URL hooks aren't a problem anymore.

    The AGENTS.md contains now critical changes in the config.php, has links to all the skills, and whatever necessary. The /init command is very capable of creating it nowadays.

    I just started to test it more and more. With fresh installations, older projects and even recent projects that have tons of everything.

    Whenever problems occure I let the AI update the skills or create new ones that take care of the problems it faced. Learning by mistakes.

    The overall workflow

    A README.md with a scope of the project, necessary templates and their fields, overall main features besides handling page rendering, like a bookmarking function for recipes or read articles, newsletter signups, automation tasks to clean up older data, and whatever the project needs.

    The amount of typing is still the same but now mainly in markdown files that explain what to build (/specs), what to fix (/issues), and what we have done already (/docs).

    I always start in PLAN mode.

    Starting simple with the overall idea, goals, and outcome. Then the combination of tool and model is important. OpenCode and Claude Code are great at thinking and planning but they need a capable model like Opus, Kimi K2.5 Thinking or even GLM-5. They start to ask questions, give options, recommend workflows. When that's done i ask to save everything to a file in the /specs folder. From here I can either switch to BUILD mode, manually tweaks the plan file, or let other models (Gemini 3 Pro or Codex) review it and ask for suggestions, changes, fixes.

     

    Github: https://github.com/webmanufaktur/pwaiworkflow/

    Installation:

    1. Download and extract files
    2. Move entire .agents folder into the project root next to the wire/ folder
    3. Look into create-symlinks.sh, run if necessary

    --- 

    Plans

    • Windsurf
      $10/month (Legacy) with access to all Anthropic, OpenAI, Google models, and many more
    • Z.AI
      Coding Plan Pro $120/year (BlackFriday Deal) with all GLM models, including GLM-5 and future releases
    • Kimi
      Moderato $19/month with Kimi K2.5 (just expired)
    • Minimax
      Coding Plan $20/month with M2.5 (started using it as successor to Kimi)

    Tools

    • OpenCodehttps://opencode.ai/ 
      Similar to Claude Code, easy to configure, and even easier to extend with custom modes, agents, skills, and whatever you might need or want. Has a great planning mode and doesn't ask unnecessary questions in the middle of tasks like Claude Code did for a while just to burn more tokens.
    • Kimi Code CLI (with Kimi K2.5) - https://www.kimi.com/code/en 
      Tested it last month and while it's a CLI like OpenCode/Claude Code it feels and works totally different. It doesn't have any modes but supports AGENTS.md and SKILLS. Super fast and it is super capable for quick fixes, smaller features, or heavy automations.
    • Windsurf IDEhttps://windsurf.com/editor 
      Like Cursor with almost identical features, a custom terminal integration, includes a browser that has full access and control which is great for debugging, UI/UX (especially with Opus 4x.) - I guess most of you have seen in the past or even tried it. Was called Codium before and I know some of you used that Codium Extension which was awesome.
    • Like 8
  11. I tried this and it stated that the directory is not empty - which is true because there is a folder for DDEV (.ddev).

    Maybe add a note that says something like: "If you are running this in a DDEV environment, contine as the .ddev folder stays untouched." Or something similar.

    At least this is what happened when I continued. Overall pretty nice experience.

    All that's missing now is a curl/wget command or a public URL on Github we can just copy and paste and go from there.

    I like it!

     

    Oh... and maybe the script should remove the kickstart.php as well.

  12. The following question might sound a bit rough at the edges, BUT are people still using FontAwesome?
    Sure we have it in the ProcessWire backend but I can't remember using it somewhere else in a real project.

    I'd say YES to re-submit to push ProcessWire but that's by far the only reason I could think of.

    • Like 2
  13. I know that a lot of you enjoy some AI assistance while coding, therefore I wanted to point you to this deal:

    Screenshot2025-11-29at21-44-12GLMCodingPlanpoweredbyGLM-4.6.thumb.png.6ab3e727c91b532e2dbe5327af4d2062.png

     

    Compared to Claude Sonnet 4.5

    Screenshot2025-11-29at21-43-40GLMCodingPlanpoweredbyGLM-4.6.thumb.png.bdc25d641cb6e1e9cfee546fa2f7760d.png

    I use Z.AI GLM 4.6 for quite some time now in OpenCode and Cline and I am super happy with it.
    For the price the results are awesome. No fear to ask for another iteration as usage limits are way higher than in Claude Code, Codex, and probably many others. 

    Works in almost all tools availabe, see here:
    https://docs.z.ai/scenario-example/develop-tools/claude

    I am not affiliated with them so there is just this plain text link to their subscribe page.
    Take a look for yourself.

    ➡️ z.ai/subscribe

     

    • Like 1
  14. 9 hours ago, cst989 said:

    and its suggestion to load only the CSS you need

    My tailwind.dist.css file only contains what my projects need most of the time - on all pages/views/whatever. 😁
    So there is that.

    However you could split it up in several TailwindCSS files. One for only layouts, one for components (or even each component), one for this, and one for that. It depends on how much time you want to invest and break things up into smaller pieces and then add to whereever you finally load the CSS files.

    I think it's quite a bit of an overhead, but in case your projects are huge or have multiple areas, such as frontend, backend (not ProcessWire itself, but like a custom member area) this could help.

    First step would be disabling automatic detection - see here: https://tailwindcss.com/docs/detecting-classes-in-source-files#disabling-automatic-detection

    Then you would need multiple .css files that have directives to source only some parts of your files. It really depends on how well-structured your files are. Also in the docs, see link above.

    @import "tailwindcss" source(none);
    
    @source "../admin";
    @source "../shared";

     

    • Thanks 1
  15. 17 hours ago, FireWire said:

    I don't want to be too blunt and I can't speak for anyone else, but I've never referred a client to a software or service website as part of the education process. It doesn't do anything for them. You are the expert. The person making the pitch should be able to fully explain the technology stack to the extent that the conversation requires it in language they can understand because we are the interpreters. Clients trust me because I am the expert and [...]

    💯!
    I couidn't have said it any better - and said similar things in the past. At least 95% of my clients don't care about what is used to achieve their goals. They need tools that work, are easy to use, have a low barrier to onboard new editors to maintain content or data.

     

    5 hours ago, MrSnoozles said:

    But have you ever worked with other agencies? Can you imagine working for the first time with another agency and you're telling them you want to do the project with ProcessWire? They know a thing or two about technologies as well and also know a variety of CMS from other projects. They usually have never heard of ProcessWire so they're inevitably going to inform themselves about what they're getting into and what they're offering to their client (since we're just the contractor implementing the design).

    Quite a lot of times, yes. I migrated a bunch of Wordpress, Typo3, Joomla projects over to ProcessWire and everyone was happy with the result. The moment you have to deal with lots or tons of data ProcessWire beats everything. This already starts with simple things like events (parties, concerts, those kind of events) and you take care of archiving old events. 🤯 Try this with WordPress. Try to automate things. It's super easy in ProcessWire. Remove daily maintenance tasks from your clients schedule - use this as a selling point - and they will understand.

    Depending on how big the project/budget was I either [a] showed them the most critical details about ProcessWire, like Security, API, Backend, Templates, Multilanguage, Access Rights/Roles. Everything is in the core, no additional modules/plugins needed. [b] built a MVP of the project, showcased automation, user management, access rights/roles, and let them (or those that would have to do so in the future) add/edit/delete content and data.

    BUT... When my only part in a project is implementing the design, build out templates, components, blocks - everything frontend - I don't care what they use later on as CMS.

     

    [Side note] Don't get me wrong about the overall topic. I think the new design/website could profit from some tweaks and iterations. I'd love to see more content and examples towards developers. Not only the basic API things, but how easy it is to work with it. Even when you are totally new to it.

    • Like 2
  16. Some minor tweaks in the PHP & JS and this is working as expected.

    <?php
    
    foreach ($page->images as $image) {
    	$thumb = $image->height(180);
    	echo "<button class='trigger'
    	popovertarget='mypopover'
    	popovertargetaction='show'
    	data-full='{$image->url}'>
    	<img src='{$thumb->url}' alt='{$image->description}' />
    </button>";
    }
    
    ?>
    
    <div id='mypopover' popover>
    	<img src='' alt='' />
    	<button class='close_pop' popovertarget='mypopover' popovertargetaction='hide'>&times;</button>
    </div>
    
    
    <script>
    	window.addEventListener("load", initGallery);
    
    	function initGallery() {
    		const triggers = document.querySelectorAll(".trigger");
    		let popImg = document.querySelector("#mypopover img");
    
    		triggers.forEach((trigger) => {
    			trigger.addEventListener("click", () => {
    				let popImgUrl = trigger.dataset.full;
    				popImg.src = popImgUrl;
    				let triggerImg = trigger.querySelector("img");
    				popImg.alt = triggerImg ? triggerImg.alt : "";
    			});
    		});
    	}
    </script>

     

  17. Ask for browser name, version, and all extensions installed.
    Even ask if the person is using a VPN or is sitting behind a PiHole or Adguard instance.

    One coincidence... the user is using an Apple and the page path contains `Apple(s)`.
    Another thing, the path has a weird prefix in the breadcrumb: `\Apples`

    Might be nothing, but these are my first thoughts.

    • Like 2
  18. @cpx3can you provide me a list of all modules you use and and outline of the template in which that occures, maybe even an export of the template and fields, with the exact versions of ProcessWire and the modules you use. So I can create a similar environment and play around with it?

    Would reduce the guessing here.

  19. AI, Cursor, Windsurf, Claude Code... you name it.

    In terms of ProcessWire they all need a strong hand that guides them through different tasks, ways, and whatever its in the way.

    You need to oultine your part in ProcessWire in great detail.
    You need to define hooks, the solutions to use - from ZIP to TempDir.
    You have to outline the forms it needs to render and the fields to use from start to finish.
    You could give an existing module as baseline, but beware it knows what to do then.
    But extending existing modules works pretty good - see my fork here of GUID/UUID Generator

    Whatever tool you use, it knows the baseline I knew 2 weeks into ProcessWire back in 2014 after doing the tutorials and reading the forums.
    Hint: Let Composer/Cascade finish the tutorials - it's wild! And let them create rules, workflows and memories from it.
    You will reach a junior-junior grade PW-dev this way.

    BUT (big time)... it's great and even superior in terms of PHP.
    Do the outline, from start to finish, do what you know in terms of ProcessWire.
    Let the AI/IDE/Agents do the PHP part, including docs, and you will be happy.

    Sure... not that much fun as people have that use NextJS (13, and maybe 14, but not 15) or AstroJS (2,3, and parts of 4, but not 5)... but hey... that's still only JavaScript (maybe Typescript) those AI/IDE/Agents are good at - the concepts still need either docs or a solid foundation. In the JS-world everything is a pattern, everything is JS or TS, the concepts are the same. But framework-specific... is another story.

    Laravel works great. Ok, maybe not the latest version, and maybe not all the extensions, like Forge and Filament.
    But yeah, it works. Even migrations. Depending on the database. And don't try Supabase or Neon. That's super wild.
    But... older versions with just *.blade.php - works!
    Flux, InertiaJS, VUE, React? meh

    I am still not a coder/developer/programmer BUT... I know how to write a technical concepts and know how to outline modules, hooks, whatever in ProcessWire.

    The moment I realised that those tools are great at PHP, and s*ck at ProcessWire - I understood what to do.

    A new project I work on, a NextJS/AstroJS/ProcessWire-combo, has already 50+ documents to outline which tool does what and how to do it.
    And I didn't even really start to outline anything in terms of modules or hooks.

     

    The ProcessWire part, or at least a big part, is already outlined here: https://github.com/webmanufaktur/pwai/tree/windsurf
    Which is the latest commit with most of the stuff needed - for my projects.

     

    But yes... those AI/IDE/Agents only see patterns and try to match up - in frameworks.

    To give a bit more helpful details here: AutoTemplateStubs is a great addition to help your tools to understand what's happening.
    In case you hate to do everything yourself: RockMigrations has some nice .vscode snippets that help and most AI/IDE/Agents understand it and can create templates and fields right from migrate.php.

    Noice!

    • Like 4
×
×
  • Create New...