[Tool] SFOS Dev Reference Skill - Validate Harbour Compliance, Catch Mistakes, Follow Silica Rules

Hey all,

I made a thing that might help some of you. Before I explain what it is, let me be super clear about what it is NOT:

This is NOT for vibe coding. It is NOT a magic button to make apps. It is NOT about replacing developers with AI. It is NOT promoting AI hype.

This is just a reference tool. Think of it like having a really nerdy friend who remembers all the Harbour rules, Silica conventions, Sailjail gotchas, formatting, or maybe you doing something “dangerous” etc, so you don’t have to memorize everything.

Why I made it:

I’m an Android developer who got into Sailfish OS a while back. I already made System Ninja, my first app, kind the way I learn, doing something I think is useful and putting a lot of effort into it, and now I’m working on something more complex. The problem is I keep forgetting or simply not knowing small SFOS rules, like which Sailjail permissions I need, I have a 9-5 job, and around 4-5 side projects in software and hardware that require my attention, so I really don’t have time to dedicate into digging through forum threads and docs every time I hit a wall.

So I collected everything into one place: official docs, forum threads, GitHub repos, and even a live SSH scan of my Xperia XA2. I turned it all into a skill for AI assistants so I can get quick, accurate answers while coding. It’s been genuinely helpful for my own projects, so I figured others might find it useful too.

What it actually does:

• Helps you check Harbour compliance before submitting

• Reminds you of Silica UI rules and theming

• Catches common mistakes that get apps rejected

• Shows the right Sailjail permissions

• Lists allowed/forbidden APIs and libraries

• Includes real device settings from a live SFOS phone, and a lot more!

Who is it for?

• Old devs who haven’t touched SFOS in a while and forgot the syntax

• New devs who want to learn the platform properly

• Anyone who wants a second pair of eyes on their code

You still need to know how to code. You still need to test on a real device. You still need to read the official docs. This just helps you not miss the small stuff.

Repo: I decided to make the repo private and I already asked a moderator to delete the post. I really don’t have time to reply to people attacking me for posting a skill with a Giant disclaimer saying is not for vibecoding, implying stuff about me and my work. Enjoy the SFOS development and feel free to gatekeep it as much as you want.

It’s open source (MIT). If you see something wrong or missing, tell me or send a merge request. The community here knows way more than I do. This is just my attempt to organize myself and continue in this journey supporting SFOS.

Cheers

14 Likes

Nice work, I’m sure you learned a lot about Sailfish by doing this!

On OpenRepos you write that you didn’t use the Sailfish SDK. Have you tried it with QtCreator since? That basically does everything you describe here already without the negative effects of generative AI.

If some docs are missing from the IDE that you have linked in your collection, may I suggest you open bug reports here in the forum so that Jolla can fix that for everyone?

Judging from this thread, the store page, and the generated pictures I take it System Ninja is vibe coded / built heavily relying on gen AI?

I’d like to encourage you to use the IDE. Jolla spent a lot of time building a really comfortable development environment for Sailfish. No need to reinvent the wheel.

1 Like

What are you talking about? reinvent the wheel? This is a Skill for AI Assistants.

If you don’t like it why are you even commenting passively aggressive? You don’t need to say “nice work”, just release your bad comments and go home?

Is not vibe coded, and actually if you read the post you will see this is totally not intended for that purpose. Who are you to tell me what to do in a Forum? This is reddit or something?

Edit: as I say in the post edit, the repo is now private and I am waiting a mod to delete this post and I’m still looking for the delete account button on the forum, if someone wants the repo I can send by private the files if my account is not deleted by then.

I decided to share something, I don’t have any need on posting this or even making it public, I’m not here to receive assumptions or similar in a public forum, people who think I’m doing something wrong, you’re right, continue gatekeeping SFOS development and your way of working, I will continue developing for Android and iOS as I has been doing for more than 14 years, feel free to attack people using any kind of tools out of your “traditions”, SFOS apparently doesnt need more devs and more users using more apps, I was wrong, sorry to write this, but there is not a delete button, I would have deleted this post inmediatly after reading a comment like that.

Relax dude, no one’s attacking you. You read a little too much into my post. Have you checked out the SDK?

Edit: this commit answers my question about System Ninja, I guess :slight_smile:

I’m not developing anymore for SFOS, so there is no point in this conversation. If you read the post, you will understand 2 things, a Skill is not for vibecoding, second, “I turned it all into a skill for AI assistants so I can get quick, accurate answers while coding”. Is kind of obvious in both projects there is an AI assistant, for formatting, telling me if there is something dangerous, I am a dev.

You and anyone else, cannot assume something like that from other people because of an LLM, if you wake up, you will notice you’re in 2026. People is using LLMs to ask the most basic questions in the world, imagine for development? do you work in a medium/big size company? I’m pretty sure you know how is developing nowadays. I think every single dev will have the same thinking, LLMs are here to stay, for good or for bad, and they’re making a lot of devs out there use them to improve productivity, and a lot more.

If you don’t like it, is fine. There is no need to use it, but for this specific case, I really think SFOS would benefit from having more devs, devs that use LLMs to help in their works, and if there is people here that wanna learn and test something, why not adding the skill to their workflow so they don’t make anything harmful?, and taking into account the number of people who sent me a DM asking for the repo, I think is a lot, SFOS is attracting people and people like you are doing the opposite.

In anycase, apparently you know more than me about everything I do, as I said, I already asked a mod to delete the post. Enjoy, I’m out, more space for you.

wow :joy:           

10 Likes

What an overreaction. Throwing everything out the window over a single reply on a forum. I can’t help wondering what makes you feel the need to justify yourself so much.

10 Likes

Wow indeed. These threads get shorter and shorter. I guess next time they will peace-out already before there are any answers.

Heck, this wasn’t even bad or very harshly criticized. But i do agree that procedural/predictable stuff like language servers should be preferred when they work well - and then if you still can make use of AI, put it on top of that instead of going from the ground up.

5 Likes

The only reason I explained myself is because I cannot delete the post :joy:. I’m just happy to know more people like it and they really were interested enough to ask for it in private.

Shame it went private. I am a frontend developer, so I wrote a qml/js app. It just got rejected because of too long version number (had +main and date). With the weeks between reviews this would have been very useful.

1 Like

Sailjail disable is bullshit, qmlapp example includes the cpp skeleton file forcing you into 3 arches instead of .noarch, I don’t really care that it’s llm generated as 99% of human developers do the same mistakes (see harbour-defender claiming 1 line of cpp and getting stuck in 3 arches, blame jolla for this probably as the dummy cpp file is in their qtcreator example app)

1 Like

This is exactly what the harbour validator in the SDK is built to catch :). It runs automatically in the IDE.

And in the rare case that it doesn’t catch something, just file a bug report.

Dude, just ignore the haters, some people overreact anti-AI, some pro-AI, just ignore them. I believe this is actually useful whether you’re pro or anti, nice collection of basic tenets of sfos/silica programming if some of it is a little bit hallucinated, cleaning it up would be useful for both camps

2 Likes

Yeah, harbour validation should be a skill that runs sfdk validation rather than .md file, hallucinations here are pointless when you have 100% reliable cmd

2 Likes

Just curious if all the ‘history’ parts actually make sense, or just introduce garbage in context, how relevant is n800->n900->meego history or nokia to jolla etc… to actually build a sfos.qml app? But no idea how kimi works, seems like just parsing the Silica Reference Documentation - Sailfish OS webpage would make more sense? You either build a rag/knowledge machine or a coding assistant?
Edit: the qt5.6 parts sure make sense
Edit2: yeah skip generic history, unless this is for a chatbot, add more basic (for sfos) concepts like pyotherside with its documentation would make more sense

Yeah, an important part of it was from a chatbot history from different instances, that’s why there is some “trashy” part that Will not really help the context, it was gathering some of the questions during some days and adding those to the skill, I developed my first app 100% inside a Xperia XA2, so I was using it like an assistant in another device to solve some problems and not in the project itself, at the end after pushing the code then in the desktop it was running on the project and detecting all the flags.

it needs a lot of improvement itself and removing the trash part, and gathering more info from more experienced sfos dev to make it more effective but in general it was really helpful in the last weeks, we removed a lot of stuff from it before making it a repo also, then we/I decided to post it.

A friend who has some experience (on sfos and in this specific project), me and another friend we used it to work on a native sfos Threema client, it was a headache but it proved itself useful during this time, we manage to activate the license and have individual chats before it started to turn into a rabbit hole with libsodium :joy::joy::joy:

2 Likes

FYI there’re already 2 skills out there: one for Codex and one for Claude/OpenCode.

1 Like

Hey, those are the building skills from Branson?, the one we did is focus on the whole development process, not public anymore in any case, maybe someone of the people who is using it privately will continue with the project.

This is one of weirdest threads in a while… Someone does something great that could benefit many, generally people behaved nicely, ending is that great dev part isn’t public any more and some insults thrown. I might not understand everything as non dev person, but just can’t figure out what happened by reading this thread over and over again. Maybe dev word is a little bit different and I would need to read something between the lines? Or maybe translation errors happening? Well I guess the work continues…..

5 Likes

I concur to this, it’s a strange sequence.
I guess there’s some prior feud carried from other threads which led to that outburst of anger, I can’t rationally explain it.
Passionate people 'round here :slight_smile:

4 Likes