<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Passenger Code Alignment Assistant </title>
    <description>The latest articles on Forem by Passenger Code Alignment Assistant  (@passenger_caa).</description>
    <link>https://forem.com/passenger_caa</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F7798%2F31eee0eb-b58c-401e-b43e-805fa1186916.png</url>
      <title>Forem: Passenger Code Alignment Assistant </title>
      <link>https://forem.com/passenger_caa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/passenger_caa"/>
    <language>en</language>
    <item>
      <title>Cooeee World! Passenger 🗞️🐦</title>
      <dc:creator>Adam Crockett 🌀</dc:creator>
      <pubDate>Thu, 02 Nov 2023 08:20:56 +0000</pubDate>
      <link>https://forem.com/passenger_caa/cooeee-i-write-for-passenger-no-w-3cgc</link>
      <guid>https://forem.com/passenger_caa/cooeee-i-write-for-passenger-no-w-3cgc</guid>
      <description>&lt;p&gt;I have written extensively about a new category of tools known as Code Alignment Assistants. Both Passenger and I are frustrated by the significant challenge of aligning developer efforts with business objectives. This often requires extensive reasoning, adherence to various agile methodologies, and a range of ceremonies—a process not all developers are comfortable with. Many of us entered the field of programming because we enjoy coding itself, not necessarily the additional processes that have become associated with it. I firmly believe that integrating an AI between the developer and their tasks can streamline this translation of business needs to developer actions, reducing the need for formal processes. I am so convinced of this idea’s potential that I have decided to establish a new organization to pursue it further.&lt;/p&gt;

&lt;p&gt;It's FOSS tooling, it's not for profit and it's free, it will make your life better by taking all of the reasoning out of your work and replace it with plain English. Complex issue/tickets become as easy to follow as a conversation with your family.&lt;/p&gt;

&lt;p&gt;Passenger org is now going to be keep the updates flying in.&lt;/p&gt;

&lt;p&gt;Code Alignment Assistants are the future of your ceremonies, we already have co-pilot for your code but this is something different. Imagine going to work, developing, pointing an AI at an issue, and getting to work, as you code you get feedback about your choices versus the business requirements, scoring your efforts and how closely they address the business needs, a form of testing that once above a threshold will pass.&lt;/p&gt;

&lt;p&gt;Peckish? Follow me for more!&lt;/p&gt;

</description>
      <category>news</category>
      <category>programming</category>
      <category>bdd</category>
      <category>agile</category>
    </item>
    <item>
      <title>(Code Alignment Assistant) Passenger gains GPT-4 accuracy and GitHub App Integration</title>
      <dc:creator>Adam Crockett 🌀</dc:creator>
      <pubDate>Mon, 30 Oct 2023 23:26:22 +0000</pubDate>
      <link>https://forem.com/passenger_caa/code-analysis-assistant-passenger-gains-gpt-4-accuracy-and-github-app-integration-13m7</link>
      <guid>https://forem.com/passenger_caa/code-analysis-assistant-passenger-gains-gpt-4-accuracy-and-github-app-integration-13m7</guid>
      <description>&lt;h2&gt;
  
  
  Pigeon Progress!
&lt;/h2&gt;

&lt;p&gt;Just a quick refresher on my thoughts: I'm convinced that Passenger has the potential to transform our development approach. By enhancing BDD with AI and enabling AI to evaluate our code against the desired solution directly from our issue tracker (in this case, GitHub), we can gain unprecedented insights. This feedback loop will not only alert us to errors but also offer improvement suggestions. It's about streamlining our processes, shedding unnecessary formalities, and accelerating our pace. Most importantly, it underscores the notion of empowering humans in the development process, rather than replacing them with AI. It's a game-changer, putting humans at the forefront of innovation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security improvements
&lt;/h3&gt;

&lt;p&gt;To prepare Passenger for enterprise-level deployment and launch, I've developed a GitHub app. This can be seamlessly integrated into your individual GitHub repositories or an entire organization. The beauty of this is that it offers fine-tuned permissions, ensuring Passenger access only what's necessary. No more reliance on Personal access tokens or individual developers; you can now grant permissions organization-wide. And guess what? We're gearing up for the next big thing - Actions! By doing all of this work we addressed a significant security concern by eliminating the need for personal access tokens. &lt;/p&gt;

&lt;p&gt;Simply install the GitHub App (note: it's still in private beta) and set up the Passenger CLI. Input your environment variables, and you're all set to enjoy helpful pigeons!&lt;/p&gt;

&lt;p&gt;Here is what the GitHub App description has to say: (feel free to skip if you understand what Passenger is already.)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Have you ever meticulously coded a solution, only to discover it wasn't addressing the core issue? That's where Passenger comes in.&lt;/p&gt;

&lt;p&gt;Passenger is a Code-Alignment Assistant (CAA) the first in its class, crafted with the belief in a harmonious co-working future between AI and developers. Our tool enhances development workflows, ensuring code consistency with project issues and fostering a collaborative environment where AI and human intelligence complement each other.&lt;/p&gt;

&lt;p&gt;Passenger establishes a bridge between GitHub issues and your codebase, providing a robust tool for developers to validate that their work aligns with documented requirements and discussions. It offers the ability to compare the current state of your source code, staged changes, or pull requests against the details outlined in GitHub issues. This ensures a clear and accurate code-to-issue alignment, aiding in maintaining consistency and adherence to project specifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Permissions&lt;/strong&gt;&lt;br&gt;
Read access to code, discussions, issues, metadata, and pull requests&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Demo time!
&lt;/h2&gt;

&lt;p&gt;Im going to let the shell do the talking a moment.&lt;br&gt;
&lt;em&gt;coo-cart.js, it's the wrong solution on purpose&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;cart&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;addToCart&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;productId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;productName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;productPrice&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;productInCart&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;cart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;product&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;product&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;productId&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;productInCart&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;productInCart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;quantity&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;cart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;productId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;productName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;price&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;productPrice&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;renderCart&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;renderCart&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cartItemsElement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cartItems&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;cartItemsElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;product&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;cart&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;listItem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;li&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;listItem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;product&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; (x&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;product&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;) - $&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;
      &lt;span class="nx"&gt;product&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;price&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;product&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;quantity&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;cartItemsElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;appendChild&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;listItem&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;total&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;product&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;price&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;product&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;totalPrice&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;total&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Report on issue 1 from our github repo which has the Github App installed.&lt;/span&gt;
passenger score 1 ./docs/sample/src/coo-cart.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GithubConnector
adam-cyclones/passenger

      ░░                                                                      
      ░░████░░                                                                
        ██▒▒▓▓                                                                
        ▓▓▒▒██                                                                
      ▒▒▒▒░░░░▒▒                                                              
      ▓▓░░░░    ██░░░░                                                        
      ▒▒░░░░░░░░░░▒▒▓▓██░░                                                    
        ▓▓  ░░░░▓▓▓▓▓▓▓▓▓▓                                                    
        ░░▒▒▓▓▒▒                                                              
          ░░▒▒    ░░                                                          
          ░░░░          Cooeee! Percy is working please remain calm..                             

Issue recieved... &lt;span class="c"&gt;#1 "Add Customisable Pigeon Animations for Nest Notifications" (fetched from live)&lt;/span&gt;
Converting issue to cucumber format...
The cucumber...
&lt;span class="s2"&gt;""" feature
 Feature: Customizable Pigeon Animations for Nest Notifications

Background: As a user of PigeonTasks app, 
  I want to customize pigeon animations for Nest Notifications, 
  So that I can enhance my user experience and add personalized touches to the app.

Scenario: Selecting Pigeon Animation from the Library 
  Given there is a selection of pigeon-themed animations
  When I go to select an animation for my notifications
  Then I should see a range of pigeon animations (from a dancing pigeon to one in themed costumes)

Scenario: Personalizing Settings for Pigeon Animations
  Given there is 'Personalized Settings' option
  When I select specific animations for tasks coming from certain friends or for tasks with certain tags/labels
  Then those specific animations should be set according to my preference

Scenario: Previewing Pigeon Animation
  Given there is an option to preview the animation before setting it 
  When I select an animation from the library
  Then I should be able to preview it within the app

Scenario: Checking Performance post Animation Implementation 
  Given there are new pigeon animations additions
  When I use the PigeonTasks app 
  Then the app's performance should not be hindered or cause lag when notifications pop up 
"""&lt;/span&gt;
Comparing... &lt;span class="s1"&gt;'./docs/sample/src/coo-cart.js'&lt;/span&gt;
Generating report...
&lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="s2"&gt;"accuracy"&lt;/span&gt;: 0,
  &lt;span class="s2"&gt;"analysis"&lt;/span&gt;: &lt;span class="s2"&gt;"The provided source code is not related to the described issue. The code is about product shopping cart operations like adding to cart and rendering the cart, which doesn't pertain to the feature described about customizable pigeon animations for Nest Notifications in a task application. Therefore, the accuracy of the source code to address the issue is 0%."&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is now using Chat GPT 4 and that took care of the bugs and allows for much better reports! &lt;/p&gt;

&lt;h3&gt;
  
  
  How would I use this? Whats next?
&lt;/h3&gt;

&lt;p&gt;Im really excited to start caching some of the responses, speeding it up, improving it and maybe even adding a UI who knows, a SASS, a Pipeline? You can hope to have this as part of your test suite locally as you develop and also in a PR as a check that must pass a threshold.&lt;/p&gt;

&lt;p&gt;Percy and Passenger away!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>github</category>
    </item>
    <item>
      <title>Passenger's Leap: Bridging Jira and Source Code with Precision</title>
      <dc:creator>Adam Crockett 🌀</dc:creator>
      <pubDate>Thu, 07 Sep 2023 21:15:02 +0000</pubDate>
      <link>https://forem.com/passenger_caa/passengers-leap-bridging-jira-and-source-code-with-precision-4dfm</link>
      <guid>https://forem.com/passenger_caa/passengers-leap-bridging-jira-and-source-code-with-precision-4dfm</guid>
      <description>&lt;p&gt;I Wanted to share a late-night breakthrough with Passenger (unreleased yet). It's now adept at comparing live Jira tickets directly against any source code, regardless of the language. And yes, it's as powerful as it sounds.&lt;/p&gt;

&lt;p&gt;I tested its mettle against some intentionally mismatched code. The result? Passenger gave feedback that was spot-on, almost mirroring a seasoned developer's scrutiny. Imagine integrating this level of review seamlessly into your BDD process.&lt;/p&gt;

&lt;p&gt;I'll be diving deeper soon, but felt this was too promising not to give you all a sneak peek. Eager to hear your insights.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Match Score:

    Topic Mismatch:
        Pass/Fail: Fail
        Source: The main focus is on &lt;span class="s2"&gt;"PigeonPoints Accumulation Issue"&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
        WIP: The focus is on &lt;span class="s2"&gt;"Adding items to cart"&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
        Feedback: The WIP implementation does not match the topic from the &lt;span class="nb"&gt;source &lt;/span&gt;of truth at all.

    Scenario Mismatch:
        Pass/Fail: Fail
        Source: A single scenario focusing on accumulating PigeonPoints when tasks are completed.
        WIP: Multiple scenarios focusing on adding products to a cart.
        Feedback: The WIP implementation&lt;span class="s1"&gt;'s scenarios are entirely unrelated to the scenario in the source of truth.

    Steps Mismatch:
        Pass/Fail: Fail
        Source: Steps revolve around installing an app, completing tasks, and observing pigeons.
        WIP: Steps revolve around product addition to a shopping cart.
        Feedback: None of the steps in the WIP implementation align with the steps from the source of truth.

    Use of Scenario Outlines and Placeholders:
        Pass/Fail: Fail (based on relevance to source of truth)
        Source: No use of placeholders (&amp;lt;...&amp;gt;) or scenario outlines.
        WIP: The WIP implementation makes use of placeholders and implies the use of scenario outlines, even if not explicitly mentioned.
        Feedback: The WIP adds complexity that wasn'&lt;/span&gt;t present &lt;span class="k"&gt;in &lt;/span&gt;the original scenario from the &lt;span class="nb"&gt;source &lt;/span&gt;of truth.

    Overall Relevance:
        Pass/Fail: Fail
        Feedback: The WIP implementation seems to be &lt;span class="k"&gt;for &lt;/span&gt;an entirely different feature and doesn&lt;span class="s1"&gt;'t relate to the source of truth in any clear way.

Overall Feedback:

The WIP implementation does not align with the source of truth. They represent different features and different domains of problems. It'&lt;/span&gt;s crucial to revisit the requirements and ensure that the WIP implementation aligns with the intended feature to avoid potential misalignments &lt;span class="k"&gt;in &lt;/span&gt;future development phases.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Its particularly interesting that it calls you out and tells you to go read the ticket again!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Amalgam: Roadmap to 0.1.0</title>
      <dc:creator>Adam Crockett 🌀</dc:creator>
      <pubDate>Fri, 25 Aug 2023 18:06:21 +0000</pubDate>
      <link>https://forem.com/passenger_caa/amalgam-roadmap-to-010-5m4</link>
      <guid>https://forem.com/passenger_caa/amalgam-roadmap-to-010-5m4</guid>
      <description>&lt;p&gt;900 of you lovely people ❤️ have read about my &lt;em&gt;promise&lt;/em&gt; of never writing tests again whilst using AI to score your solution agains for example Jira, and then it will provide feedback. Well you folks also provided great feedback thank you!&lt;/p&gt;

&lt;h2&gt;
  
  
  Entering production
&lt;/h2&gt;

&lt;p&gt;After swearing that it would need a team and I probably won’t write much more than a prototype, I’m afraid I got a little hooked on the idea. So tonight at 8pm A repository will go live. I have another contributor I will be inviting too.&lt;/p&gt;

&lt;h2&gt;
  
  
  No rust
&lt;/h2&gt;

&lt;p&gt;I was using rust, but I need to be productive and write faster iterations and then we will focus on performance, write version 2.0.0 in rust.&lt;/p&gt;

&lt;h2&gt;
  
  
  How would you use the tool
&lt;/h2&gt;

&lt;p&gt;I’m going to develop the tool to work at the pull request stage, I think this will make discovering files that as a whole contribute towards solving a ticket and therefore all can be scanned, graded and your report will be delivered to you.&lt;br&gt;
Therefore it is initially a pipeline tool.&lt;br&gt;
I do want to make it more real-time and performant so that is where IDE plug-ins and a cli come in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Developing ideas
&lt;/h2&gt;

&lt;p&gt;It’s been said that I could even use tickets to generate code and gherkin. So yea this is now a bi directional concept and that means your scrum master could generate a starting point potentially&lt;/p&gt;

&lt;p&gt;Right well that’s it for now. I’ll keep you posted!&lt;br&gt;
🙌&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>bdd</category>
      <category>documentation</category>
    </item>
    <item>
      <title>Never write tests or docs again! - Amalgam could change everything.</title>
      <dc:creator>Adam Crockett 🌀</dc:creator>
      <pubDate>Thu, 17 Aug 2023 22:20:54 +0000</pubDate>
      <link>https://forem.com/passenger_caa/never-write-a-tests-or-docs-again-amalgam-could-change-everything-1m99</link>
      <guid>https://forem.com/passenger_caa/never-write-a-tests-or-docs-again-amalgam-could-change-everything-1m99</guid>
      <description>&lt;p&gt;Amalgam is my little experimental tool written in rust and my attempt to consider the entire software development lifecycle and question it, can we do better, can we disrupt the way we develop, (yeah, I know, I hate that phrase too) but its true, and here's how. &lt;/p&gt;

&lt;p&gt;Your code should be an echo of your tests and docs, but it often seems to be that one of the 3 is out of sync or wrong, &lt;strong&gt;you and your team chase the tails trying to keep it all together&lt;/strong&gt; but like it or not, tests can be wrong, docs can be wrong and code can somehow work but still be wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can code be wrong? 🤔
&lt;/h2&gt;

&lt;p&gt;It can work, but it can be wrong, in the way that the party who asked for the code via a ticket for example, was misunderstood - im no 10X dev im not super human, I do misunderstand tickets, well wrote or otherwise, so I wanted to use AI to solve this. Removing the horrific pain point, realising 2 weeks later that you have wrote the wrong solution. 🤨😭&lt;/p&gt;

&lt;p&gt;I know of &lt;a href="https://cucumber.io/docs/guides/overview/" rel="noopener noreferrer"&gt;Cucumber&lt;/a&gt; (I may say Gherkin, I mean that), in essence its  formal syntax and language for generating tests from acceptance criteria - you know, that thing that makes what you’re writing actually the thing that was needed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gherkin"&gt;&lt;code&gt;&lt;span class="kn"&gt;Scenario&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; Breaker guesses a word
  &lt;span class="nf"&gt;Given &lt;/span&gt;the Maker has chosen a word
  &lt;span class="nf"&gt;When &lt;/span&gt;the Breaker makes a guess
  &lt;span class="nf"&gt;Then &lt;/span&gt;the Maker is asked to score
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Because ticket writing is hard.
&lt;/h2&gt;

&lt;p&gt;It is also a machine readable language and in my opinion, it is something with a barrier to entry, you need to learn but you have to commit to it to understand it let alone write it, I feel that very few teams have such time to learn it and manually write it, so enter OpenAI 🦾.&lt;/p&gt;

&lt;h3&gt;
  
  
  What can Amalgam and OpenAI AI do for us? 🤖🪄
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo run &lt;span class="nt"&gt;--&lt;/span&gt; docs/sample/src/coo-cart.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Input:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;addToCart&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;productId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;productName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;productPrice&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;productInCart&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;cart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;product&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;product&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;productId&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;productInCart&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;productInCart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;quantity&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;cart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;productId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;productName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;price&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;productPrice&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;renderCart&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;HTTP response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gherkin"&gt;&lt;code&gt;&lt;span class="kn"&gt;Scenario&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; Add a product to the cart
    &lt;span class="nf"&gt;Given &lt;/span&gt;an empty cart
    &lt;span class="nf"&gt;When &lt;/span&gt;I add a product to the cart with id &lt;span class="s"&gt;"productId"&lt;/span&gt;, name &lt;span class="s"&gt;"productName"&lt;/span&gt;, and price &lt;span class="s"&gt;"productPrice"&lt;/span&gt;
    &lt;span class="nf"&gt;Then &lt;/span&gt;the cart should contain the product with id &lt;span class="s"&gt;"productId"&lt;/span&gt;, name &lt;span class="s"&gt;"productName"&lt;/span&gt;, price &lt;span class="s"&gt;"productPrice"&lt;/span&gt;, and quantity 1
    &lt;span class="nf"&gt;And &lt;/span&gt;the cart should be rendered with the product details and total price
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But Adam! This isn’t how we use Cucumber 🥒!! No it isn’t, it’s the reverse engineering of the traditional model, take the code and turn it into a serialised format on change. We are creating a feedback loop potentially generating and updating documentation too and creating the arse-backwards Cucumber then we can do these crazy things:&lt;/p&gt;

&lt;p&gt;(Actually every function in this file becomes a source to generate and run tests for one, and docs for two.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But here is where it gets really saucy and new&lt;/strong&gt;, we pass it the html page, this FAKE Jira designed to represent some source of truth&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;http-equiv=&lt;/span&gt;&lt;span class="s"&gt;"X-UA-Compatible"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"IE=edge"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Jira Ticket: WPTCS-001&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;style&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Arial&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;sans-serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#f4f5f7&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;

      &lt;span class="nc"&gt;.ticket&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#fff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;

      &lt;span class="nc"&gt;.header&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
      &lt;span class="nc"&gt;.content&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;

      &lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#0079bf&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;

      &lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#5e6c84&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"ticket"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"header"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Jira Ticket: WPTCS-001&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;Epic:&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt; Nature-Themed Store Experience |
          &lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;Sprint:&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt; Sprint 5 | &lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;Priority:&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt; High
        &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Summary:&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;
          Develop a wood pigeon-themed cart system enhancing user experience in
          nature-themed stores.
        &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Description:&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;
          Our objective is to introduce a cart system inspired by the aesthetics
          of a wood pigeon. The cart should be visually appealing,
          user-friendly, and resonate with our brand's commitment to nature.
        &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Acceptance Criteria:&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;
            Feathered Design Aesthetics: Carts must have blue-grey and pink
            hues, handles with black striping, wood pigeon silhouette on the
            front, and signature white wing markings on the side.
          &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;
            Cozy Nest Cart Bay: Carts stored in a "Cozy Nest Bay", allowing
            efficient stacking, utilizing recycled materials, with soft lighting
            for nighttime.
          &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;
            Interactive Pigeon Sounds: Sensors activate cooing sounds based on
            cart interactions.
          &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;
            QR Code Storytelling: Carts feature a QR code linking to an
            informative wood pigeon page, with engagement-based discounts.
          &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Dependencies:&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;
          Collaboration with design and multimedia team for QR content.
          Consultation with hardware vendors for sound integration.
        &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OpenAI Will be able to figure out how closely matched the code is to the criteria giving us a score by comparing it to the Gherkin.&lt;/p&gt;

&lt;p&gt;“Does this ticket match our code?”&lt;/p&gt;

&lt;p&gt;Outcomes, would be some sort of correctness report, run-able test for the language, documentation and guidance to improve correctness.&lt;/p&gt;

&lt;h2&gt;
  
  
  Difficulties
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;one file doesn’t describe a feature usually so how to collate that? &lt;/li&gt;
&lt;li&gt;The length of the post limits the file sizes we can POST&lt;/li&gt;
&lt;li&gt;Are you comfortable to POST your source?&lt;/li&gt;
&lt;li&gt;Are you comfortable to POST your Jira?&lt;/li&gt;
&lt;li&gt;What do you see are the problems?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anyway what do you think?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>documentation</category>
      <category>bdd</category>
    </item>
  </channel>
</rss>
