Hi Carsten,
I found several issues in the Python script. Can you have a look at the raised 
PRs (with some help from Claude), those should help:

- https://github.com/apache/sling-whiteboard/pull/124
- https://github.com/apache/sling-whiteboard/pull/123
- https://github.com/apache/sling-whiteboard/pull/122
- https://github.com/apache/sling-whiteboard/pull/121
- https://github.com/apache/sling-whiteboard/pull/119

Also I would like to get some feedback on 
https://github.com/apache/sling-whiteboard/pull/120.
Thanks,
Konrad


> On 13. May 2026, at 07:13, Carsten Ziegeler <[email protected]> wrote:
> 
> Part of the problem is the non deterministic nature of llms. This skill 
> worked flawless couple of months ago on large, complicated projects. I used 
> it this week on four projects and it completely messed up. The annotations 
> were completely wrong after the migration.
> 
> In any case, for updates to the skill, I usually use the coding agent and ask 
> it to update based on the learnings.
> 
> Regards
> Carsten
> 
> On 5/8/2026 10:37 PM, Konrad Windszus wrote:
>> Another issue is different semantics of SCR Service annotation 
>> (https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html#_service)
>>  and the service element in the OSGi DS Component annotation 
>> (https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.component.html#org.osgi.service.component.annotations.Component.service--).
>> The former always registers implicitly all interfaces (no matter if 
>> transitively or directly declared) while the latter only takes into account 
>> direct ones by default.
>> Not sure if this requires adaptations to the Python script or just 
>> clarification in the SKILLS.md is enough….
>> Konrad
>>> On 8. May 2026, at 21:49, Konrad Windszus <[email protected]> wrote:
>>> 
>>> I just tried the scr migration skill with 
>>> https://github.com/Adobe-Consulting-Services/acs-aem-commons/tree/master/bundle
>>>  and for example
>>> 
>>> @SlingServlet(
>>>        methods = {HttpConstants.METHOD_GET},
>>>        resourceTypes = 
>>> {"acs-commons/components/utilities/audit-log-search"},
>>>        selectors = {"auditlogsearch"},
>>>        extensions = {"json"})
>>> 
>>> (https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/165e4fd09f17dbb6ee919c11dabe53b96a735061/bundle/src/main/java/com/adobe/acs/commons/audit_log_search/impl/AuditLogSearchServlet.java#L51-L55)
>>> 
>>> was converted to
>>> 
>>> @Component(service = Servlet.class)
>>> @SlingServletResourceTypes(
>>> resourceTypes = "acs-commons/components/utilities/audit-log-search",
>>> selectors = "auditlogsearch",
>>> extensions = "json",
>>> methods = "HttpConstants.METHOD_GET”
>>> )
>>> 
>>> Seems that 
>>> https://github.com/apache/sling-whiteboard/blob/master/skills/osgi-scr-migrator/scripts/migrate_annotations.py
>>>  does not properly deal with non-literal annotation elements yet (like in 
>>> methods.
>>> 
>>> Thanks,
>>> Konrad
>>> 
>>> 
>>> 
>>>> On 8. May 2026, at 20:54, Konrad Windszus <[email protected]> wrote:
>>>> 
>>>> Great, thanks a lot for that.
>>>> I am just wondering if this statement from the README is actually correct:
>>>> 
>>>> “**Java 17+** - Required for compiling the migrated code (OSGi R6/R7 
>>>> annotations require Java 17+)"
>>>> https://github.com/apache/sling-whiteboard/blob/c2ad0487b498c2a30ba96f780ee3818bb421c3dc/skills/osgi-scr-migrator/README.md?plain=1#L55
>>>> 
>>>> IMHO OSGi R7 Metatype/DS annotations are fully compliant with Java 8 or am 
>>>> I missing something?
>>>> Thanks,
>>>> Konrad
>>>> 
>>>> 
>>>>> On 30. Apr 2026, at 07:30, Carsten Ziegeler <[email protected]> wrote:
>>>>> 
>>>>> I added the missing instructions to the existing parent update skill and 
>>>>> also added my scr migration skill
>>>>> 
>>>>> Regards
>>>>> Carsten
>>>>> 
>>>>> On 4/24/2026 1:14 PM, Robert Munteanu wrote:
>>>>>> On Fri, 2026-04-24 at 06:33 +0200, Carsten Ziegeler wrote:
>>>>>>> Definitely interesting.
>>>>>>> 
>>>>>>> As you might have noticed, I wrote a tool which can perform such
>>>>>>> actions
>>>>>>> like updating the parent pom across a large selection of repositories
>>>>>>> using a coding agent.
>>>>>> Yes, I noticed the results :-)
>>>>>>> 
>>>>>>> I have also some skills flying around for the SCR annotation
>>>>>>> migration
>>>>>>> and parent pom updates :)
>>>>>>> 
>>>>>>> Maybe we can combine these into one. I'll have a look in the next
>>>>>>> days.
>>>>>> I think that would be very useful. I definitely did not cover a lot of
>>>>>> repos during testing with the current skills and would be happy for any
>>>>>> enhancements.
>>>>>> Thanks,
>>>>>> Robert
>>>>>>> 
>>>>>>> Regards
>>>>>>> Carsten
>>>>>>> 
>>>>>>> On 4/23/2026 5:35 PM, Robert Munteanu wrote:
>>>>>>>> On Fri, 2026-04-17 at 18:32 +0200, Robert Munteanu wrote:
>>>>>>>>> Hi,
>>>>>>>>> 
>>>>>>>>> Updating the parent pom version in Sling modules is one task that
>>>>>>>>> usually gets left behind. We have many modules, the work is not
>>>>>>>>> that
>>>>>>>>> rewarding and sometimes very tedious - for instance migrating
>>>>>>>>> from
>>>>>>>>> the
>>>>>>>>> Felix SCR annotations to the official OSGi ones.
>>>>>>>>> 
>>>>>>>>> To make things simpler I have started an experiment in the
>>>>>>>>> whiteboard
>>>>>>>>> -
>>>>>>>>> using agent skills [1] to upgrade the parent pom version.
>>>>>>>> 
>>>>>>>> I extended the experiment and created a tiny evaluation harness for
>>>>>>>> agent skills at [3] based on the Inpect framework [4].
>>>>>>>> 
>>>>>>>> I did some measurements of the skill and tried to answer some
>>>>>>>> questions
>>>>>>>> around efficiency and cost; captured the raw data at [5]:
>>>>>>>> 
>>>>>>>> 1. Is the free variant gpt-oss-120b from openrouter good enough?
>>>>>>>> 
>>>>>>>> With skills it is good enough - sometimes better than haiku-4.5
>>>>>>>> from
>>>>>>>> Amazon Bedrock.
>>>>>>>> 
>>>>>>>> 2. How big is the difference between haiku-4.5 and sonnet-4.5?
>>>>>>>> 
>>>>>>>> With skills the success rate is almost the same - haiku missed 1/15
>>>>>>>> of
>>>>>>>> the evals. But Sonnet ends up being almost 3.x more expensive.
>>>>>>>> 
>>>>>>>> 3. How good is Claude Sonnet with or without skills?
>>>>>>>> 
>>>>>>>> The skills make all the difference.
>>>>>>>> 
>>>>>>>> Without skills Sonnet can only perform basic upgrades (100%) but it
>>>>>>>> fails in more complex cases:
>>>>>>>> - 20% success rate if the rat checks fail after upgrade
>>>>>>>> - 0% success rate if the build fails because of relocated
>>>>>>>> dependencies
>>>>>>>> (OSGi R6)
>>>>>>>> 
>>>>>>>> With skills Sonnet passes all 15 tests.
>>>>>>>> 
>>>>>>>> [1]: https://agentskills.io/
>>>>>>>> [2]: https://github.com/apache/sling-whiteboard/tree/master/skills/
>>>>>>>> [3]:
>>>>>>>> https://github.com/apache/sling-whiteboard/tree/master/skill-evals
>>>>>>>> [4]: https://inspect.aisi.org.uk/
>>>>>>>> [5]:
>>>>>>>> https://gist.github.com/rombert/c099c13013fbdf27445816c976005aba
>>>>> 
>>>>> -- 
>>>>> Carsten Ziegeler
>>>>> Adobe
>>>>> [email protected]
>>>>> 
>>>>> 
>>>> 
>>> 
>>> 
> 
> -- 
> Carsten Ziegeler
> Adobe
> [email protected]
> 
> 

Reply via email to